Не удалось найти тип перечисления для статической ссылки в 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.

Как я могу найти свой тип перечисления?

Ответ 1

Вы можете объявить его вне своего класса:

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

    public  class Enums
    {
        public MySelections CurrentSelection;

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

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

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

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

Ответ 2

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

{x:Static models:Enums+MySelections.one}