2012-04-17 16 views
0

私は2つのdevExpress checkedComboBoxes(ボックス)を使用してリストとそのアンチリストを維持しようとしています(つまり、両方のコンボボックスに同じアイテムがあり、リストの1つのみをチェックする必要があります)。DevExpress ExtraEditors checkedcomboboxは同期していませんか?

私は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; 

} 

に通じ呼び出す

EditValueChanged += gcnew System::EventHandler(this, &SelectionControl::exclBox_EditValueChanged); 

を扱う各ボックスのよう私は、C++/CLIを使用してい

単純にボックスリストを反復し、アンチリストを!Checkedに設定するよりも簡単です。

しかし、正しく機能していないようです(正しい項目がテキストウィンドウに追加されますが、何もチェックされません)。さらに、イベントが終了した後、私のボックスを見ると、テキストウィンドウの文字列値が正しいことがわかります(選択したものを反映します)。しかし、それを開くと、すべてのアイテムが選択されます。

私は試してみる人はいますか?

代わりに各アイテムのCheckState :: Checkedを設定する方が良いですか?

ありがとうございます!

+0

私は 'antibox-> SetEditValue(result)'を使うと、何もチェックされず、テキストウィンドウに何も表示されません。 – Melanie

答えて

0

私はDevExpressのサポートに話をしていました。短い答えは、これがうまくいくということですが、私たちにとってはそうではありません。あなたの走行距離は異なるかもしれませんが、私たちの解決策は2つのコンボボックスをフォーム上の別々のコントロールに置くことでした。

関連する問題