私はこれを言うフラグ列挙型を持っています -
[Flags]
public enum Department
{
None = 0,
A = 1,
B = 2,
C = 4,
D = 8
}
この列挙型の値をビューに表示したい。リストボックスを作成し、そのソースをこの enum のコレクションにバインドすることを考えましたList<Department> Departments
。ビューモデルのプロパティにバインドするチェックボックスがあると考えるまで、すべてがうまく機能します-
public Department SelectedDepartments { get; set; }
ここのソリューションhttp://compilewith.net/2008/12/wpf-flagsenumvalueconverter.htmlは、列挙値をチェックボックスにバインドするためのエレガントなソリューションを提供しますが、リスト内の列挙値の数に等しいチェックボックスを作成するという1つの制限があります。しかし、私の場合、Enum には 20 個の値が含まれているため (つまり、UI に 20 個のチェックボックスがあることを意味します)、UI に非常に多くのチェックボックスを配置する余裕はありません。
使用してみましたが、メソッドMultiBindingConverter
で失敗します。ConvertBack
チェックボックスの状態を SelectedDepartments プロパティにバインドしたいと考えています。プロパティ値が「A | B」の場合、A と B のチェックボックスをオンにする必要がありますが、C と D はオフのままにする必要があります。