2011-11-04 51 views
1

我試圖在dataatrid(dt)中顯示兩列。並添加另一列,這是一個comboxcolumn,以便我可以分配扇區到每一行。問題是無法動態更新組合框的選擇。當我點擊別的東西時,選擇就消失了。有沒有什麼辦法解決這一問題?如何動態更新datagrid中comboxboxcolumn的選擇?

dg_display.DataContext = dt.DefaultView; 
    dg_display.Columns[0].Header = "Symbol"; 
    dg_display.Columns[1].Header = "Company name";   
    DataGridComboBoxColumn columnComboBox = new DataGridComboBoxColumn(); 
    string[] sectorarray = new[] 
            { 
             "Consumer Discretionary", "Consumer  Staples", "Energy", "Financial", 
             "Financials", "Health Care", "Industrials", "Information Technology", 
             "Materials", "Other", "Technology","Telecommunication Services", "Utilities" 
            }; 
     columnComboBox.ItemsSource = sectorarray; 
     columnComboBox.IsReadOnly = false; 
        dg_display.Columns.Add(columnComboBox); 
     dg_display.Columns[2].Header = "Sector"; 

回答

0

你不是在ComboBox綁定SelectedItem

設置或者SelectedItemBindingSelectedValueBinding

+0

非常感謝!但如何將這些comboxes選擇的reult綁定到數據表列,並讓combox中的選項的來源是數組中的字符串(並且該數組是固定的)? –

+0

@JoshuaHu我不知道我明白,你的'ItemsSource'是ComboBox中的項目,而SelectedItem或SelectedValue是被選中的項目。 – Rachel

0

你可以嘗試這樣的....

DataGridComboBoxColumn col = new DataGridComboBoxColumn(); 
     col.Header = "Name"; 
     col.DisplayMemberPath = "Name"; 
     col.SelectedValueBinding = new Binding("Name"); 
     col.ItemsSource = simacc; 
     col.TextBinding = new Binding("Name"); 
     col.CanUserSort = false; 
     dataGrid1.Columns.Add(col); 
+0

非常感謝!但如何將這些comboxes選擇的reult綁定到數據表列,並讓combox中的選項的來源是數組中的字符串(並且該數組是固定的)? –