Как я могу привязаться к перечислению в WPF с “текущим” значением
-
03-07-2019 - |
Вопрос
У меня есть простое перечисление .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>
Я бы хотел объявить каждое значение по отдельности, чтобы указать порядок, а также потому, что я хочу, чтобы некоторые элементы имели определенные значения margin.Кроме того, позже я захочу отобразить определенные значки для каждого значения.
Теперь я теряюсь в догадках, как я могу объявить, что я хочу, чтобы элемент управления, связанный с currentValue, был выделен жирным шрифтом.Я попытался использовать универсальный DataTrigger внутри шаблона для проверки содержимого на соответствие currentValue, но, похоже, значение триггера не может быть привязкой.
Я также рассматривал возможность использования отключенного списка, но тогда у меня не может быть определенных полей для определенных элементов.Или я могу?
Решение
Примерьте это на размер...
<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.