DataGridComboBoxColumn不显示值列表

时间:2011-12-19 11:45:22

标签: c# wpf binding wpfdatagrid datagridcomboboxcolumn

我想在DataGrid中填充DataGridComboBoxColumn,其中包含字符串列表中的状态值。

XAML看起来像这样

<DataGridComboBoxColumn Header="Status" >
  <DataGridComboBoxColumn.ElementStyle>
    <Style TargetType="ComboBox">
      <Setter Property="ItemsSource" Value="{Binding}" />
    </Style>
  </DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>

字符串的代码是一个简单的通用列表

var lstStrings = new List<string>();
lstStrings.Add("New");
lstStrings.Add("Open");
lstStrings.Add("ReOpen");
lstStrings.Add("Closed");

DataGridComboBoxColumn cmbx = grdComments.Columns[1] as DataGridComboBoxColumn;
cmbx.ItemsSource = lstStrings;

网格数据是类的对象列表。问题是默认情况下网格数据状态列值为空(它不显示已保存的值)。当我单击单元格时,组合显示的是值,但是当我选择任何值时,它也没有显示。

我希望我的解释足够明确。

1 个答案:

答案 0 :(得分:0)

要使数据绑定起作用,必须将XAML项绑定到类的公共属性。 在您提供的代码示例中,您似乎正在尝试绑定到本地变量。

我建议你看一下使用ObservableCollection类型并在你的类中实现INotifyPropertyChanged接口,这样就可以在视图中自动更新代码中的列表更新。