Как я могу привязаться к перечислению в WPF с “текущим” значением

StackOverflow https://stackoverflow.com/questions/600661

Вопрос

У меня есть простое перечисление .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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top