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