将数据绑定到嵌套的DataGrid可以通过以下步骤实现:
以下是一个示例代码,演示如何将数据绑定到嵌套的DataGrid,并实现可折叠的父级DataGrid:
// 数据模型
public class ParentItem
{
public string Name { get; set; }
public bool IsExpanded { get; set; }
public List<ChildItem> Children { get; set; }
}
public class ChildItem
{
public string Name { get; set; }
public int Age { get; set; }
}
// 在父级DataGrid的列定义中添加模板
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTemplateColumn Header="Children">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Children}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}" />
<DataGridTextColumn Header="Age" Binding="{Binding Age}" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
// 在父级DataGrid的代码中提供展开和折叠的逻辑
private void ToggleExpansion(ParentItem item)
{
item.IsExpanded = !item.IsExpanded;
}
// 可折叠的父级DataGrid的样式
<Style TargetType="DataGrid">
<Setter Property="RowDetailsVisibilityMode" Value="Collapsed" />
<Style.Triggers>
<DataTrigger Binding="{Binding IsExpanded}" Value="True">
<Setter Property="RowDetailsVisibilityMode" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
这样,你就可以将数据绑定到嵌套的DataGrid,并实现可折叠的父级DataGrid。在这个示例中,父级DataGrid的每一行都有一个展开/折叠按钮,点击按钮可以展开或折叠对应行的嵌套DataGrid。
领取专属 10元无门槛券
手把手带您无忧上云