我想在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;
网格数据是类的对象列表。问题是默认情况下网格数据状态列值为空(它不显示已保存的值)。当我单击单元格时,组合显示的是值,但是当我选择任何值时,它也没有显示。
我希望我的解释足够明确。
答案 0 :(得分:0)
要使数据绑定起作用,必须将XAML项绑定到类的公共属性。 在您提供的代码示例中,您似乎正在尝试绑定到本地变量。
我建议你看一下使用ObservableCollection类型并在你的类中实现INotifyPropertyChanged接口,这样就可以在视图中自动更新代码中的列表更新。