より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

QuickConverterでIntegerをboolに変換する

いちいちConverterクラスを作成しなくても、手軽にConverterの動きを行えるのがQuickConverterです。

github.com

毎回、ユースケースに合わせて Converterを作成してはキリがないので、このライブラリは優れ物ですね。

QuickConverterを使ったIntegerをboolに変換するケース。

RadioButtonに使いたいシナリオです。

以下みたいに私は書いてます。(CancelIdはReactivePropertyなので.Valueプロパティ指定ですが、適宜使っているViewModelのプロパティに合わせて変えてください)

                <RadioButton 
                    IsChecked="{Binding CancelId.Value, Converter={qc:QuickConverter '$P ==0', ConvertBack='$value == true ? 0 : DependencyProperty.UnsetValue'} }"
                    Content="選択肢1" Margin="8 0"/>

App.xamlにQuickConverterにNamespaceの追加を忘れずに。

            QuickConverter.EquationTokenizer.AddNamespace(typeof(System.Windows.DependencyProperty));

f:id:rimever:20210314171027p:plain
ない場合は警告してくれる

f:id:rimever:20210314170402p:plain

QuickConverterを使いこなす上では、ConvertよりConvertBackがこれ書ける?というのが課題になってきます。

QuickConverterではそこまで複雑には書けないので。

やっぱり、WPFの理解が、どこまで出来ているかが重要ですね。まだまだです。