0

こんにちは、winform で devExpress を使用しています。アイテムのリスト wholeList = {Item1, Item2, Item3, Item4,Item5,Item6} と、別の 2 つのリスト ActionAList = {Item1, Item3, Item5}, ActionBList = {Item2, Item4, Item6} があります。フォームにグリッド ビューがあります。そして、このグリッドには「アクション」と「アイテム」の 2 つの列があります。各列には、インプレース エディターとして repositoryItemComboBox があります。

「Action」のドロップダウンには、「ActionA」と「ActionB」があります。「アイテム」のドロップダウンには、アイテム1からアイテム6までの6つのアイテムがすべてあります。ActionA を選択すると、Item ドロップダウンに Item1、Item3、および Item5 のみが表示されます。ActionB を選択したときと同じように、Item ドロップダウンに Item2、Item4、および Item6 のみが表示されるようにします。

ユーザーが別のアクション (A または B) を選択すると、Item ドロップダウンで repositoryItems をクリアし、ActionAList または ActionBList のいずれかを repositoryItem に戻すことができると思います。しかし、この時点で Item ドロップダウンで使用できるアイテムは Item1、3、および 5 だけである可能性があるため、不快に感じますが、別の行には ActionB と Item2 が含まれている可能性があります。

この要件をアーカイブする最善の方法は何でしょうか。また、リスト全体でいくつかのアイテムを非表示にする方法があるかどうかも考えています。したがって、ユーザーがアイテムドロップダウンのエディターを開くと。現在の行のアクション値に応じて、ActionAList または ActionBList にアイテムを表示するだけです。しかし、ComboBoxItem または ImageComboBoxItem を作成するときに、そのようなプロパティを見つけることができません。

ご意見ありがとうございます。

4

1 に答える 1

0

まず、repositoryItems は GridView の各行のエディターを構築するための単なるテンプレートであることを覚えておいてください。セル ベースでエディターを制御する唯一の方法は、CustomRowCellEdit イベントを処理することです (既存のエディターを選択するか、カスタム エディターを作成できます)。

次に、CellValueChanged イベントを処理して、ユーザーが「アクション」列の値を変更するたびに「アイテム」列をクリアし、説明した状況を回避する必要があります (アクション = A の場合の ActionBList のアイテム)。

よろしく、

マチェイ・ノウィッキ

于 2015-04-13T10:36:29.250 に答える