sliverlight3.0 DataGrid 嵌套

xaml:

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.ColumnDefinitions>
        <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <data:DataGrid AutoGenerateColumns="False"   Grid.Column="0" Grid.Row="0" Name="dataGrid1">
        <data:DataGrid.Columns>
            <data:DataGridTextColumn Header="Count" Binding="{Binding count}" />
        </data:DataGrid.Columns>
        <data:DataGrid.RowDetailsTemplate>
            <DataTemplate>
                <Border Width="700"   Height="200" BorderThickness="2" BorderBrush="Red">
                    <data:DataGrid   AutoGenerateColumns="False"  Loaded="Children_Loaded" Name="Children">
                        <data:DataGrid.Columns>
                            <data:DataGridTextColumn Header="Count" Binding="{Binding count}" />
                        </data:DataGrid.Columns>

                    </data:DataGrid>                      
                </Border>
            </DataTemplate>
        </data:DataGrid.RowDetailsTemplate>
    </data:DataGrid>
</Grid>

 

 

后台代码:

public partial class MainPage : UserControl
  {
      DataGrid Chidren = new DataGrid();
      List<ListCount2> counts;
      public MainPage()
      {
          InitializeComponent();
          this.Loaded += new RoutedEventHandler(MainPage_Loaded);
          this.dataGrid1.CanUserSortColumns = false;//禁止对列排序,不然会出错。
          this.dataGrid1.LoadingRowDetails += new EventHandler<DataGridRowDetailsEventArgs>(dataGrid1_LoadingRowDetails);

      }

      void MainPage_Loaded(object sender, RoutedEventArgs e)
      {
          List<ListCount> counts = new List<ListCount>()
           { new ListCount() { count = 1 },
              new ListCount() { count = 2 },
              new ListCount() { count = 3 },
              new ListCount() { count = 4 }
          };
          dataGrid1.ItemsSource = counts;
      }

      private void dataGrid1_LoadingRowDetails(object sender, DataGridRowDetailsEventArgs e)
      {
          if (e.Row.DataContext != null)
          {
              ListCount list = e.Row.DataContext as ListCount;
             // MessageBox.Show(list.count.ToString());
               counts = new List<ListCount2>();
              counts.Add(new ListCount2() { count = list.count * 10 });
              counts.Add(new ListCount2() { count = list.count * 10 });
              counts.Add(new ListCount2() { count = list.count * 10 });
              counts.Add(new ListCount2() { count = list.count * 10 });
              counts.Add(new ListCount2() { count = list.count * 10 });
          }
      }

      private void Children_Loaded(object sender, RoutedEventArgs e)
      {

          Chidren = sender as DataGrid;
          Chidren.ItemsSource = counts;
      }

  }

  public class ListCount
  {
      public int count
      {
          get;
          set;
      }
  }

  public class ListCount2
  {
      public int count
      {
          get;
          set;
      }
  }

 

效果:

image

posted @ 2010-01-18 23:34  3.mu  阅读(488)  评论(0)    收藏  举报