2016-08-12 46 views
0

我正在使用我的應用程序中的DevExpress控件。我正在使用checkedComboBoxEdit,但是當我想要選擇兩個選項時,我直接在控件中有一個無效值錯誤。有人知道我爲什麼以及如何解決它? 謝謝!美好的一天!如何在CheckedComboBoxEdit中允許多個選擇?

private void checkedComboBoxEdit1_EditValueChanged(object sender, EventArgs e) 
{ 
    foreach (int items in checkedComboBoxEdit1.Properties.Items.GetCheckedValues()) 
     Prueba(checkedComboBoxEdit1.Properties); 
} 

public void Prueba(RepositoryItemCheckedComboBoxEdit ri) 
{ 
    int cont = ri.Items.Count; 
    for (int i = 0; cont > i; i++) 
    { 
     var valor = ri.Items[i].Value; 
    } 
} 
+1

該控件[顯然允許檢查多個值](https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsCheckedComboBoxEdittopic) - 您可以顯示用於檢查值的代碼,值是什麼以及*確切*你收到的錯誤。 – stuartd

+0

分享一些代碼,你如何綁定checkedComboBoxEdit與數據源和你如何得到錯誤? –

+0

您是使用用戶界面還是使用代碼檢查兩個項目?如果使用代碼,看起來你傳遞了一個不正確的值。請顯示你的代碼。 – user3185569

回答

0

請仔細閱讀文檔,並考慮在字符串數據類型的列而不是某個數字列單元格中分配此控件。 從技術文檔:CheckedComboBoxEdit Class

編輯的編輯值(BaseEdit.EditValue)識別所有在下拉列表中選擇 選項。通過 RepositoryItemCheckedComboBoxEdit.EditValueType屬性,您可以指定是否將編輯值形成爲字符串或列表。

希望此信息可以幫助您避免在網格控件中設置不正確的值,該值在選擇後顯示錯誤值的驗證消息。我通過指定數據源修改了this DX問題示例,並且在分配整數列中的字符串後,行爲與預期相同。

RepositoryItemCheckedComboBoxEdit ccb = new RepositoryItemCheckedComboBoxEdit(); 
List<Student> data = new List<Student>(); 
for(int i = 0; i < 3; i++) 
{ 
    data.Add(new Student() {Id=i, Name= $"Student {i}"}); 
} 
ccb.EditValueType = EditValueTypeCollection.CSV; // It is default value 
ccb.DataSource = new BindingSource(data, null); 
ccb.ValueMember = "Id"; 
ccb.DisplayMember = "Name"; 
ccb.AllowMultiSelect = true; 
ccb.EditValueChanged += Ccb_EditValueChanged; 
//ccb.Buttons.Add(new DevExpress.XtraEditors.Controls.EditorButton()); 
//ccb.ButtonClick += Ccb_ButtonClick; 
//ccb.Popup += Ccb_Popup; 
gridView1.Columns["Name"].ColumnEdit = ccb; // I have changed it from "ID" column to "Name" 

如果你把它分配給ID列,然後它就會指望它在細胞整數值,當你在編輯器中做選擇後獲得這麼養同樣的錯誤。

相關問題