数据绑定到列表的内容

时间:2016-03-14 13:01:35

标签: c# wpf xaml data-binding

我正在尝试将列表中项目的属性绑定到数据网格。我有以下代码:

  <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列表的对象,它们是具有两个公共属性的对象:SettingNameSettingType

基本上,层次结构是这样的:  1.数据    1.设置      1. SettingName      2. SettingType

数据上下文在主窗口的构造函数中设置,LeftSettingsDataGrid.DataContext = Data;

为什么绑定不起作用?

1 个答案:

答案 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而不是数据