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;
}
}
效果:

浙公网安备 33010602011771号