0
我試圖使用兩個devExpress checkedComboBoxes(盒)來維護一個列表及其antilist(即,兩個組合框中的相同項目,並且它們必須僅在列表中的一個列表中檢查)。DevExpress ExtraEditor checkedcombobox不同步?
我使用C++/CLI,因此每個箱子我處理
EditValueChanged += gcnew System::EventHandler(this, &SelectionControl::exclBox_EditValueChanged);
由於DevExpress的文件似乎是說來設置編輯值調用,直至
void
box_ToggleAntibox(
DevExpress::XtraEditors::CheckedComboBoxEdit^ box,
DevExpress::XtraEditors::CheckedComboBoxEdit^ antibox)
{
using namespace DevExpress::XtraEditors::Controls ;
cli::array<String ^>^sAnti = gcnew cli::array<String ^>(2*box->Properties->Items->Count) ;
int ii = 0;
String^delim = ", ";
for each (CheckedListBoxItem^ i in box->Properties->GetItems()) {
if (i->CheckState==Windows::Forms::CheckState::Unchecked)
{
sAnti[ii] = i->Value->ToString();
++ii;
sAnti[ii] = delim;
++ii;
}
}
String^result = String::Concat(sAnti);
antibox->EditValue = result;
}
,而而不是簡單地遍歷盒子列表並將反列表設置爲!Checked。
但是,它似乎並沒有工作(正確的項目被添加到文本窗口,但沒有被檢查)。而且,如果我在事件結束後查看我的盒子,我發現文本窗口中的字符串值是正確的(反映了我選擇的內容),但是如果我打開它,則會選擇所有項目。
有沒有人有任何建議,我可能會嘗試?
是不是更好地設置每個項目的CheckState :: Checked?
謝謝!
如果我使用'antibox-> SetEditValue(result)',那麼既沒有被檢查,也沒有出現在文本窗口中。 – Melanie 2012-04-17 04:13:15