可能な構成を表す列挙型があります。(以下はほんの一例です...)
public enum ConfigurationType {
[Description("Minimal Configuration")]
Minimal = 0,
[Description("Standard Configuration")]
Standard,
[Description("Premium Configuration")]
Premium
}
現在、クラスのタイプのプロパティを値コンバーター (ここConfigurationType
にあります) を使用して ComboBox にバインドし、説明を表示しています。それはうまくいきます。しかし、私がやりたいことは、その場で特定の列挙型メンバーの選択を無効にできることです。その結果、それらは ComboBox に表示されません。
この列挙型をフラグ列挙型に変換してから、一連のフラグにバインドしようとしましたが、あまりうまくいきませんでした。それまたは他の提案に関する指針はありますか?
編集 - フラグの例
フラグを使用しようとすると、列挙型を次のように変更しました。
[Flags]
public enum ConfigurationType {
[Description("Minimal Configuration")]
Minimal = 1 << 0,
[Description("Standard Configuration")]
Standard = 1 << 1,
[Description("Premium Configuration")]
Premium = 1 << 2
}
public ConfigurationType AvailableConfigs = ConfigurationType.Standard | ConfigurationType.Premium;
実際には、これらのビットごとの or のリストを AvailableConfigs などの変数に割り当てることができるように機能しますが (上記のように)、値コンバーターの部分がハングアップしました。値コンバーターを実装して、AvailableConfigs に存在する各フラグの説明を取得し、SelectedConfiguration などの (同じく ConfigurationType の) 変数に変換する方法がわかりませんでした。もちろん、SelectedConfiguration のセッターは、一度に存在するフラグを 1 つだけ強制します。