在VGridControl中使用ComboBox时会出现奇怪的行为。
我有一个对象列表:
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";
Repro步骤:
当我按下拉按钮然后检查每个项目的CheckedState时 - 没关系。它显示正确的值;
当我只选择行(按行本身)并且不展开下拉列表时,所有项目的CheckedState都是“未选中”。
我检查使用:
int checkedItems = 0;
foreach (var item in repositoryItemCheckedComboBoxEdit1.GetItems().Cast<CheckedListBoxItem>())
{
if (item.CheckState == CheckState.Checked)
{
checkedItems++;
}
}
那么,如何从CheckedComboBoxEdit获取选中的值?
答案 0 :(得分:1)
我找到了一个简单的答案。要获取行值,您可以使用:
var s = vGridControl.GetCellValue(row1, vGridControl.FocusedRecord).ToString();
这显示了行的存储值。然后你可以将它转换成列表:
var list = s.Split(',').ToList();