У меня есть флаг перечисление говорят, что это -Bind Flag перечислений ListBox, содержащий флажки
[Flags]
public enum Department
{
None = 0,
A = 1,
B = 2,
C = 4,
D = 8
}
Я хочу показать значения этого перечисления на просмотр. Я подумал о создании списка и привязывании его источника к коллекции этого перечисления List<Department> Departments
. Все работает так хорошо, пока я не думал иметь флажок, который связывается со свойством на мой ViewModel -
public Department SelectedDepartments { get; set; }
Решение здесь http://compilewith.net/2008/12/wpf-flagsenumvalueconverter.html обеспечивает элегантное решение для связывания значений перечислений для флажков, но его есть одно ограничение создания флажков равных к числу значений перечисления в списке. Но в моем случае я не могу позволить себе иметь так много флажков, лежащих на моем пользовательском интерфейсе, так как мой Enum содержит 20 значений (так что это означает наличие 20 флажков в пользовательском интерфейсе).
Я пробовал использовать MultiBindingConverter
, но это не удалось в ConvertBack
Метод. Я хочу связать состояние флажков с собственностью SelectedDepartments. Скажем, если значение свойства «A | B», тогда необходимо проверить флажок A и B, тогда как C и D должны оставаться непроверенными.