简单的WPF单选按钮绑定?

33 浏览
0 Comments

简单的WPF单选按钮绑定?

如何将三个单选按钮绑定到 int 类型属性的值为 1、2 或 3 的最简单方法是什么?

admin 更改状态以发布 2023年5月24日
0
0 Comments

我非常惊讶没有人提出这种绑定布尔数组的解决方案。它可能不是最干净的,但可以非常容易地使用:

private bool[] _modeArray = new bool[] { true, false, false};
public bool[] ModeArray
{
    get { return _modeArray ; }
}
public int SelectedMode
{
    get { return Array.IndexOf(_modeArray, true); }
}

在XAML中:




注意:如果您不想默认选中一个,则不需要双向绑定。双向绑定是此解决方案最大的缺点。

优点:

  • 无需代码后台
  • 无需额外的类(IValue Converter)
  • 无需额外的枚举
  • 不需要奇怪的绑定
  • 直接且易于理解
  • 不违反MVVM模式(至少我希望如此)
0
0 Comments

我想出了一个简单的解决方案。\n我有一个model.cs类,其中包含:\n

private int _isSuccess;
public int IsSuccess { get { return _isSuccess; } set { _isSuccess = value; } }

\n我有一个Window1.xaml.cs文件,其中DataContext设置为model.cs。xaml包含以下单选按钮: \n




\n这是我的转换器:\n

public class RadioBoolToIntConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        int integer = (int)value;
        if (integer==int.Parse(parameter.ToString()))
            return true;
        else
            return false;
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return parameter;
    }
}

\n当然,在 Window1 的资源中也包含:\n


    

0