2014-09-11 46 views
0

在VGridControl中使用ComboBox時有一種奇怪的行爲。DevExpress VGridControl和CheckedComboBoxEdit - 如何獲取檢查值?

我有對象的列表:

var samples = new List<Samples>(); 
samples.Add(new Samples {Id = 1, Name = "s1"}); 
samples.Add(new Samples {Id = 2, Name = "s2"}); 
samples.Add(new Samples {Id = 3, Name = "s3"}); 
samples.Add(new Samples {Id = 4, Name = "s4"}); 

VGridControl有一個行,此行有一個RowEdit = CheckedComboBoxEdit。

CheckedComboBoxEdit.ShowDropDown設置爲「DoubleClick」。

然後:

repositoryItemCheckedComboBoxEdit1.DataSource = samples; 
repositoryItemCheckedComboBoxEdit1.ValueMember = "Id"; 
repositoryItemCheckedComboBoxEdit1.DisplayMember = "Name"; 
row.Properties.Value = "2, 4"; 

再現步驟:

  1. 當我按下下拉按鈕,然後選中CheckedState每個項目 - 這是確定。它顯示了正確的值;

  2. 當我簡單地選擇行(按行本身)並且不展開下拉列表時,所有項目的CheckedState都是「未選中」。

我檢查使用:

int checkedItems = 0; 
foreach (var item in repositoryItemCheckedComboBoxEdit1.GetItems().Cast<CheckedListBoxItem>()) 
{ 
    if (item.CheckState == CheckState.Checked) 
    { 
     checkedItems++; 
    } 
} 

那麼,如何從CheckedComboBoxEdit檢查的價值?

回答

1

我找到了一個簡單的答案。爲了獲得行值,您可以使用:

var s = vGridControl.GetCellValue(row1, vGridControl.FocusedRecord).ToString(); 

這顯示了一行的存儲值。然後你可以將它轉換成列表:

var list = s.Split(',').ToList(); 
相關問題