2011-12-19 52 views
0

我想在DataGrid中填充一个DataGridComboBoxColumn,其中包含来自字符串列表的状态值。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

可能dublicate的这个问题:http://stackoverflow.com/q/8346869/920384 – punker76 2011-12-19 11:55:07

+0

这个例子中没有代码,所以我无法通过只有xaml连接点 – CodeMe 2011-12-19 12:19:37

+0

很难说,没有看到更多的代码,但我猜测你的'MyClass.Status'不是一个字符串,或者绑定不正确。 ComboBox在什么时候绑定到你的DataItem?我没有在XAML的任何地方看到它。你在哪里填充它的ItemsSource?我很困惑,因为你有一个'ItemsSource'的绑定,并且它看起来像是在代码隐藏中设置 – Rachel 2011-12-19 13:59:39

回答

0

对于数据绑定工作,XAML项目必须绑定到类的公共属性。 在你给它的代码示例中,你会试图绑定到局部变量。

我建议你看看使用ObservableCollection类型并在你的类中实现INotifyPropertyChanged接口,那样在代码中进行的列表更改将自动更新在视图上。

+0

我填充的列表将只填充一次我是否需要为某个静态值创建一个类?除了组合值显示在组合中唯一的问题是选择 – CodeMe 2011-12-20 10:37:05