如何绑定WPF DataGrid以获得以下结果:http://i.stack.imgur.com/7Wne0.png
请注意左侧所需的/ - 按钮 .
DataGrid的ItemsSource绑定到IEnumerable of Document .
问题是如何定义列,以便它们绑定到第二级和第三级对象并获得展开/折叠按钮 .
我不希望在父项的RowDetail中定义的Group和Field项具有第二个和第三个网格 .
目标是拥有一个DataGrid,一行列 Headers 以及扩展当前行的子元素(如果有)的能力 .
public class Document
{
public string Name { get; set; }
public IEnumerable<Group> Groups { get; set; }
}
public class Group
{
public string Name { get; set; }
public IEnumerable<Field> Fields { get; set; }
}
public class Field
{
public string Name { get; set; }
public FieldType FieldType { get; set; }
public bool IsRequired { get; set; }
}
2 回答
只需绑定到属性即 .
请注意,您的所有类都必须实现INotifyPropertyChanged . 所有属性都应该引发广泛记录的PropertyChanged . 您的馆藏应该是ObservableCollections .
我在这里找到的唯一技巧是使用带有模板列的嵌套数据网格,没有用于平滑视图的 Headers .
在代码中:
XAML:
编辑如果你想 - 按钮折叠细节你应该使用DataGrid的RowDetailsTemplate,如描述here