我正在尝试将列表中项目的属性绑定到数据网格。我有以下代码:
<DataGrid Grid.Column="0" Name="LeftSettingsDataGrid" ItemsSource="{Binding Path=Data}">
<DataGrid.Columns>
<DataGridTextColumn Header="Setting Name" Binding="{Binding Path=Settings.SettingName}" />
<DataGridTextColumn Header="Setting Type" Binding="{Binding Path=Settings.SettingType}" />
</DataGrid.Columns>
</DataGrid>
但这会产生一个空的网格视图。
数据是一个包含Settings
列表的对象,它们是具有两个公共属性的对象:SettingName
和SettingType
。
基本上,层次结构是这样的: 1.数据 1.设置 1. SettingName 2. SettingType
数据上下文在主窗口的构造函数中设置,LeftSettingsDataGrid.DataContext = Data;
。
为什么绑定不起作用?
答案 0 :(得分:1)
在datacontext中看到这是一个树,你有一个显示多少项目的列表,你的项目来源是设置,你的显示成员是item.SettingName等
<DataGrid Grid.Column="0" Name="LeftSettingsDataGrid" ItemsSource="{Binding Path=Settings}">
<DataGrid.Columns>
<DataGridTextColumn Header="Setting Name" Binding="{Binding Path=SettingName}" />
<DataGridTextColumn Header="Setting Type" Binding="{Binding Path=SettingType}" />
</DataGrid.Columns>
</DataGrid>
您的ItemsSource是Data.Settings而不是数据