2011-12-19 81 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