ConveterParameter как целое число - PullRequest
0 голосов
/ 11 марта 2019

У меня есть несколько переключателей, каждая из которых представляет числовое (целое) значение.Они связаны с числовым свойством в модели представления и используют конвертер для преобразования целочисленного значения в логическое значение.Проблема в том, что параметр 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;
    }
}

1 Ответ

1 голос
/ 11 марта 2019

Вы должны сначала преобразовать ваш параметр и значение в подходящий формат, например, double / integer! Как то так

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return System.Convert.ToInt32(value) == System.Convert.ToInt32(parameter);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...