Привязка данных перечисляет к флажкам C # - PullRequest
2 голосов
/ 11 ноября 2010

Кто-нибудь знает, как можно связать данные полем enum, которое является комбинацией ORed base enum? Скажи, что у меня есть

MyEnumType
{ 
    e1=0x1, 
    e2=0x2, 
    e3=0x4
}

и тогда я делаю

MyEnumType myEnum = MyEnumType.e1 | MyEnumType.e3

Затем я хотел бы отобразить диалоговое окно, которое можно использовать для установки значения myEnum. Прямо сейчас у меня есть несколько флажков, каждый из которых соответствует различному значению типа enum. В зависимости от того, что проверено, я перебираю их и так далее. Привязка данных не выполняется, все выполняется вручную.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2010

Я бы создал вспомогательный класс (модель представления), который:

  • имел бы свойства с именами E1, E2 и т. Д.
  • Класс будет реализовывать IPropertyChanged
  • При каждом изменении базового значения вам нужно будет определить, какие свойства были изменены, и правильно вызвать IPropertyChanged.

Затем просто поставьте флажки в свойствах.

Однако, если бы у меня было более одного такого перечисления, я бы начал искать решение, которое мне не нужно было писатьстолько кода.

2 голосов
/ 11 ноября 2010

Google для FlaggedEnumEditor. Это будет достаточно хороший пример, чтобы понять концепцию.

...