1. ホーム
  2. wpf

[解決済み] ConverterParameterに整数を渡すには?

2022-12-10 18:40:44

質問

整数のプロパティにバインドしようとしています。

<RadioButton Content="None"
             IsChecked="{Binding MyProperty,
                         Converter={StaticResource IntToBoolConverter},
                         ConverterParameter=0}" />

で、私のコンバータは

[ValueConversion(typeof(int), typeof(bool))]
public class IntToBoolConverter : IValueConverter
{
    public object Convert(object value, Type t, object parameter, CultureInfo culture)
    {
        return value.Equals(parameter);
    }

    public object ConvertBack(object value, Type t, object parameter, CultureInfo culture)
    {
        return value.Equals(false) ? DependencyProperty.UnsetValue : parameter;
    }
}

もちろん文字列をパースすることはできますが、そうする必要があるのでしょうか?

助けてくれてありがとうございます。 KONSTANTIN

どのように解決するのですか?

はい、どうぞ。

<RadioButton Content="None"
             xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <RadioButton.IsChecked>
        <Binding Path="MyProperty"
                 Converter="{StaticResource IntToBoolConverter}">
            <Binding.ConverterParameter>
                <sys:Int32>0</sys:Int32>
            </Binding.ConverterParameter>
        </Binding>
    </RadioButton.IsChecked>
</RadioButton>

コツは、基本的なシステムの型に対して名前空間を含めること、そして少なくともConverterParameterのバインディングを要素形式で書くことです。