DataGridComboBoxColumn不显示值列表

本文关键字:列表 显示 DataGridComboBoxColumn | 更新日期: 2023-09-27 18:18:21

我想填充一个DataGridComboBoxColumn在DataGrid与状态值从字符串列表

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;

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

我希望我的解释足够清楚。

DataGridComboBoxColumn不显示值列表

要使数据绑定工作,必须将XAML项绑定到类的公共属性。在您给出的代码示例中,似乎您正在尝试绑定到一个局部变量。

我建议你考虑使用ObservableCollection类型,并在你的类中实现INotifyPropertyChanged接口,这样对代码中所做的列表的更改将自动在视图上更新。