Как я могу связать перечисление в WPF с «текущим» значением - PullRequest
3 голосов
/ 02 марта 2009

У меня есть простое перечисление .Net. У меня также есть объект модели представления, у которого есть свойство "CurrentValue" типа моего перечисления. Это свойство может быть привязано к данным (объект реализует INotifyPropertyChanged). Теперь я хотел бы показать один элемент пользовательского интерфейса для каждого значения перечисления в определенном порядке и выделить «CurrentValue» (жирным шрифтом). Я хотел бы, чтобы объявление было что-то вроде:

<StackPanel Orientation="Vertical">               
    <ContentControl Content="{x:Static MyEnum.Value1}" />
    <ContentControl Content="{x:Static MyEnum.Value2}" Margin="10" />
    <ContentControl Content="{x:Static MyEnum.Value3}" />
</StackPanel>

Я бы хотел объявить каждое значение индивидуально, указать порядок, а также потому, что я хочу, чтобы у некоторых элементов были определенные значения полей. Кроме того, позже я хочу отобразить определенные значки для каждого значения.

Теперь я потерялся в том, как я могу объявить, что хочу, чтобы элемент управления, связанный с CurrentValue, был выделен жирным шрифтом. Я попытался использовать универсальный DataTrigger внутри шаблона, чтобы проверить содержимое в сравнении с CurrentValue, но, похоже, значение триггера не может быть привязкой.

Я также подумал о переходе на отключенный ListBox, но тогда у меня не может быть определенных полей для определенных элементов. Или я могу?

1 Ответ

1 голос
/ 02 марта 2009

Примерь размер ...

<ListBox>
  <ListBoxItem><local:MyEnum>Value1</local:MyEnum></ListBoxItem>
  <ListBoxItem Margin="10"><local:MyEnum>Value2</local:MyEnum></ListBoxItem>
  <ListBoxItem><local:MyEnum>Value3</local:MyEnum></ListBoxItem>
</ListBox>

Вам необходимо сопоставить local xmlns с вашим пространством имен CLR.

...