[.net 4.5]如何将枚举绑定到RadioButton?为什么x:static不支持枚举?

时间:2017-03-23 10:38:56

标签: enums binding

当我需要将枚举绑定到RadioButton时,请参考How to bind RadioButtons to an enum?问题的更好答案。

枚举代码:

public enum SelectionMode
{
    FixedMode = 0,
    FreeMode = 1
}

/// <summary>
/// MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
}

xaml代码:

<RadioButton Content="FreeMode" IsChecked="{Binding ChannelSelectionMode, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static local:SelectionMode.FreeMode}}" ></RadioButton>

我有这个例外:

  

xaml异常:namaspace找不到SelectionMode,枚举   在命名空间中的SelectionMode,x:Type Local:SelectionMode即可   工作

我试过这种方式:

  1. 将枚举SelectionMode移至Viewmodels的命名空间。
  2. 将枚举SelectionMode移到一个Viewmodel课程中。
  3. 但一切都行不通。 请给我一些建议,我很疯狂。

2 个答案:

答案 0 :(得分:0)

您分享的帖子有转换器代码,或者您也可以在此帖子中找到。 Binding radio button to enum property

此外,您还需要添加另一个类似这样的单选按钮

<RadioButton Content="FixedMode" IsChecked="{Binding ChannelSelectionMode, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static local:SelectionMode.FixedMode}}" ></RadioButton>
<RadioButton Content="FreeMode" IsChecked="{Binding ChannelSelectionMode, Converter={StaticResource enumToBooleanConverter}, ConverterParameter={x:Static local:SelectionMode.FreeMode}}" ></RadioButton>

答案 1 :(得分:0)

如果您遇到问题,请不要担心,重启VS,离开一段时间后再回来