Не удалось найти тип перечисления для статической ссылки в WPF

Я пытаюсь привязать перечисление к переключателю в WPF (вдохновленный этим ответом), но у меня возникают проблемы с поиском типа перечисления для параметра преобразователя:

Перечисление определяется следующим образом

namespace Application.Models
{
    public class Enums
    {
        public enum MySelections { one, two ,three };

        public MySelections CurrentSelection;

        ...

    }
}

Я пытаюсь привязать сейчас флажок следующим образом (контекст данных предполагается правильным и преобразователь значений реализован:)

<Window x:Class="Application.MainWindow"
        ....
        xnlns:models="clr-namespace:Application.Models" >

...
<RadioButton Content="One"
             IsChecked="{Binding Path=CurrentSelection, Converter={StaticResource EnumToBooleanConverter}, ConverterParameter={x:Static models:Enums.MySelections.one}}" />
...

Проблема заключается в {x:Static models:Enums.MySelections.one} который постоянно выдает ошибку, что тип models:Enums.MySelections невозможно найти.

Как я могу найти свой тип enum?

2 ответа

Решение

Вы можете объявить это за пределами вашего класса:

namespace Application.Models
{
    public enum MySelections { one, two, three };

    public  class Enums
    {
        public MySelections CurrentSelection;

И тогда этот xaml будет работать:

.... ConverterParameter={x:Static models:MySelections.one}

x:Static разметка имеет фиксированный синтаксис:

{x: Статический префикс:typeName.staticMemberName}

Используйте "+" вместо "." чтобы добраться до вложенного типа в XAML:

{x:Static models:Enums+MySelections.one}
Другие вопросы по тегам