#358 – 将RadioButton和枚举绑定(Binding a RadioButton to an Enumerated Type)

你可以通过转换器将RadioButton 控件和一个枚举类型绑定。

XAML代码:

<Window.Resources>
    <loc:EnumToBooleanConverter x:Key="enumToBooleanConverter" />
</Window.Resources>
 
<StackPanel HorizontalAlignment="Center" Margin="15">
    <Label Content="Favorite animated character?"/>
    <RadioButton IsChecked="{Binding Path=FavCharacter, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static loc:CartoonCharacters.Gumby}}"
                 Content="Gumby"/>
    <RadioButton IsChecked="{Binding Path=FavCharacter, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static loc:CartoonCharacters.PinkPanther}}"
                 Content="Pink Panther"/>
    <RadioButton IsChecked="{Binding Path=FavCharacter, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static loc:CartoonCharacters.Magoo}}"
                 Content="Mr. Magoo"/>
</StackPanel>


对应的枚举:

public enum CartoonCharacters
{
    Gumby,
    PinkPanther,
    Magoo
}


用于绑定的该枚举类型的属性

public CartoonCharacters FavCharacter { get; set; }

转换器:
public class EnumToBooleanConverter : IValueConverter
{
    // Convert enum [value] to boolean, true if matches [param]
    public object Convert(object value, Type targetType, object param, CultureInfo culture)
    {
        return value.Equals(param);
    }
 
    // Convert boolean to enum, returning [param] if true
    public object ConvertBack(object value, Type targetType, object param, CultureInfo culture)
    {
        return (bool)value ? param : Binding.DoNothing;
    }
}

******************************************************译者注**************************************************
上面的例子中,有三个 RadioButton 控件,每个 RadioButton 控件都和CartoonCharacters 枚举的一个值对应,当 FavCharacter 属性的值和某个RadioButton控件对应的值一样的时候,该RadioButton 控件将被选中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值