ConveterParameter为整数

问题描述 投票:0回答:1

我有一些单选按钮,每个按钮代表一个数字(整数)值。它们绑定到视图模型中的数字属性,并使用转换器将整数值转换为布尔值。问题是,Converter参数似乎被解析为字符串,所以我的转换器返回false,即使我必须使用相同的数字。

我最好的选择是指定ConverterParameter是一个整数,但我该怎么做?

RadioButton XAML:

<RadioButton Content="1" IsChecked="{Binding SelectedValue, Converter={StaticResource MyConverter}, ConverterParameter=1}" />

视图模型中的绑定属性:

// The SetProperty method handles INotifyProperyChanged
private int _selectedValue;
public int SelectedValue
{
    get { return _selectedValue; }
    set { SetProperty(ref _selectedValue, value); }
}

我的转换器:

public class MyConverter: IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return value.Equals(parameter);
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return ((bool)value) ? parameter : Binding.DoNothing;
    }
}
c# wpf xaml ivalueconverter
1个回答
1
投票

您应该首先将参数和值转换为合适的格式,如double / integer!像这样的东西

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return System.Convert.ToInt32(value) == System.Convert.ToInt32(parameter);
    }
© www.soinside.com 2019 - 2024. All rights reserved.