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