これらの問題を対処するために、C1Binding クラスでは、表現力豊かな式を使用して連結を行うことができます。C1Binding を使用すると、前述の例を次のように記述できます。
XAML |
コードのコピー
|
---|---|
<TextBlock Text="{c1:C1Binding Expression='concatenate(FirstName, | |, LastName)' }" Foreground="{c1:C1Binding Expression='if(Amount < 0, |red|, |black|)' }" /> |
この方がずっと簡潔かつ直感的であることがわかります。リソースもコンバータもありません。連結の意図が XAML からはっきりとわかります。
XAML の作成者がフルネームを「姓、名」の順で表示したいと思ったら、XAML で直接変更できます。マイナスの金額を太字で表示させたい場合も、簡単に変更できます。
XAML |
コードのコピー
|
---|---|
<TextBlock Text="{c1:C1Binding Expression='concatenate(FirstName, | |, LastName)' }" Foreground="{c1:C1Binding Expression='if(Amount < 0, |red|, |black|)' }" /> FontWeight="{c1:C1Binding Expression='if(Amount < 0, |bold|, |normal|)' }" /> |
上の式で、縦棒は引用符を表します。" を使用することもできますが、縦棒の方が読みやすく入力も簡単です。
上の式内の "Expression=" 部分は、WPF ではオプショナルですが、Silverlight の場合はSilverlight 5 が解放された後必要ではありません。