0

我想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;

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

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

4

1 回答 1

0

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

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

于 2011-12-20T08:36:39.667 回答