Chr*_*der 14 wpf enums .net-4.0 valueconverter c#-4.0
我正在尝试将枚举绑定到WPF中的单选按钮(受此答案的启发),但我无法找到转换器参数的枚举类型:
枚举按以下方式定义
namespace Application.Models
{
public class Enums
{
public enum MySelections { one, two ,three };
public MySelections CurrentSelection;
...
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试绑定这样的复选框(假设数据上下文是正确的并且实现了值转换器:)
<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}}" />
...
Run Code Online (Sandbox Code Playgroud)
问题在于{x:Static models:Enums.MySelections.one}不断抛出models:Enums.MySelections无法找到类型的错误.
我怎样才能找到我的枚举类型?
Joh*_*wen 41
使用"+"代替"." 在XAML中获取嵌套类型:
{x:Static models:Enums+MySelections.one}
Run Code Online (Sandbox Code Playgroud)
Dan*_*zey 14
你可以在你的课外声明它:
namespace Application.Models
{
public enum MySelections { one, two, three };
public class Enums
{
public MySelections CurrentSelection;
Run Code Online (Sandbox Code Playgroud)
然后这个xaml将工作:
.... ConverterParameter={x:Static models:MySelections.one}
Run Code Online (Sandbox Code Playgroud)
该x:Static标记有固定的语法:
{x:静态前缀:typeName.staticMemberName}