Windows Phone 8.1 XAML:将枚举值放入 XAML 属性
本文关键字:XAML 属性 枚举 Phone Windows | 更新日期: 2023-09-27 18:35:37
这是我的枚举结构:
namespace MyNS
{
enum MyEnum
{
MyValOne = 1,
MyValTwo = 2
}
}
取而代之的是:
<RadioButton x:Name="1" />
<RadioButton x:Name="2" />
我想要这样的东西:(x:Name 属性并不重要。任何属性都可以)
<RadioButton x:Name="MyNS.MyEnum.MyValOne" />
<RadioButton x:Name="MyNS.MyEnum.MyValTwo" />
我该怎么做?
你只需要一个这样的枚举转换器。
public class EnumRadioButtonConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return value.ToString() == parameter.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return (bool)value ? Enum.Parse(typeof(MyEnum), parameter.ToString(), true) : null;
}
}
这就是你使用它的方式(不要忘记给他们一个GroupName
)。当然,您需要在视图模型中定义一个SelectedEnum
属性(类型MyEnum
)。
<RadioButton IsChecked="{Binding SelectedEnum, ConverterParameter=MyValTwo, Converter={StaticResource EnumRadioButtonConverter}, Mode=TwoWay}" GroupName="MyRadioButtonGroup" />
<RadioButton IsChecked="{Binding SelectedEnum, ConverterParameter=MyValOne, Converter={StaticResource EnumRadioButtonConverter}, Mode=TwoWay}" GroupName="MyRadioButtonGroup" />
要使用转换器,您需要在资源部分中引用它。
<Page.Resources>
<local:EnumRadioButtonConverter x:Key="EnumRadioButtonConverter" />
请在此处查找工作示例。