Jeśli binding w WPFie czasem Wam nie wystarcza polecam przyjrzeć się “projektowi”, który pojawił się na The Joy of Code. Jeśli kiedykolwiek próbowaliście wykonać jakieś operacje na wartości bindowanej teraz już możecie. Można napisać np. tak:

<TextBlock Text=”{Binding Value, ElementName=Slider,

                        Converter={binding:ExpressionConverter Math.Cos(x)},

                        StringFormat=’x/2: {0}’}” />

<TextBlock Text=”{Binding Value, ElementName=Slider}” />

<TextBlock Text=”{Binding Value, ElementName=Slider,

                        Converter={binding:ExpressionConverter x*2},

                        StringFormat=’x*2: {0}’}” />

Parametr Expression można wpisać dowolne wyrażenie, które zostanie skompilowane i wykonane (np. Math.Cos(x)/x). Oczywiście zadziała to tylko przy bindowaniu jednostronnym. Sprytne rozwiązanie, gdyż nie trzeba tworzyć oddzielnych konwerterów.

Warto również zobaczyć jak wygląda w kodzie. Można zobaczyć jak należy używać klas Expression.

Cały artykuł na – The Joy of Code – The Binding you wanted from day one in WPF.