C# WPF将集合集合绑定到DataGrid
为了简化我的问题,假设我有一个属性,我将DataGrid绑定到:C# WPF将集合集合绑定到DataGrid,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,为了简化我的问题,假设我有一个属性,我将DataGrid绑定到: public List<LibrarySection> Library { get; set; } 现在,我如何绑定到属性库,以便在DataGrid中实现所有书籍的列表: 希望Library部分是数据网格的数据上下文,您只需添加书籍,因为它是项目资源 如果AutoGenerateColumns设置为true,这已经显示了您的项目,但如果您想定义自己的列(更改标题和内容),则应设置AutoGenerateColumns
public List<LibrarySection> Library { get; set; }
现在,我如何绑定到属性库,以便在DataGrid中实现所有书籍的列表:
希望Library部分是数据网格的
数据上下文
,您只需添加书籍
,因为它是项目资源
如果AutoGenerateColumns
设置为true
,这已经显示了您的项目,但如果您想定义自己的列(更改标题和内容),则应设置AutoGenerateColumns=“false”
然后,您可以添加列
,并告诉每个列
绑定您的项目资源
绑定到的集合中包含的对象的特定属性
<DataGrid ItemSource="{Binding Books}
AutoGenerateColumns="false"><!--should be false-->
<!-- Define custom columns -->
<DataGrid.Columns>
<DataGridTextColumn Binding="{Name}" Header="BookName" />
<DataGridTextColumn Binding="{Author}" Header="Book Author" />
<DataGridTextColumn Binding="{BookID}" Header="BookID" />
</DataGrid.Columns>
</DataGrid>
谢谢:)是的,我有ViewModel,但它没有LiblarySection
而是一个名为Library的列表,正如我在问题中所说的。我也同意,我应该使用observateCollection
,但这不取决于我。您也可以使用{Binding library[0].Books}
-在单个库上绑定,或者为每个库创建一个新的数据网格。从WPF和/或开始可能非常有用。还有很多示例使用了DataGrid
<代码>分组
对于您的场景来说可能也很有趣!嘿,我有点误解你了。我没有时间仔细检查你的答案。我的网格的数据上下文是库列表,而不是库节本身。如何将数据绑定到图书馆
,以获取图书列表?我需要所有的图书馆部分都在同一个数据网格中
class Book
{
public string Name { get; set; }
public string Author { get; set; }
public string BookID { get; set; }
}
<DataGrid ItemSource="{Binding Books}
AutoGenerateColumns="false"><!--should be false-->
<!-- Define custom columns -->
<DataGrid.Columns>
<DataGridTextColumn Binding="{Name}" Header="BookName" />
<DataGridTextColumn Binding="{Author}" Header="Book Author" />
<DataGridTextColumn Binding="{BookID}" Header="BookID" />
</DataGrid.Columns>
</DataGrid>