ComponentOne for Silverlight
Binding Expressions for Silverlight
Binding Expressions for Silverlightを使用すれば、コンバータを記述する必要はなくなります。C1Bindingの機能豊富なインライン式構文を活用して、時間を短縮し、簡潔なXAMLを記述できます。コンバータを使用しなくても、連結コード内で、文字列を結合したり、式を計算することができます。直接if/elseロジックを適用することもできます。
論理演算子と算術演算子
連結内で単純な算術関数や数学関数を実行できます。一般的な論理演算子(=、>、<、<>、>=、<=)、算術演算子(+、-、*、/、^)であればすべて使用できます。また、かっこを使用して式をグループ化できます。たとえば、「Amount * 5%」は、Amountプロパティの値の0.05倍を返します。
<TextBlock Text="{c1:C1Binding Expression='Amount * 5%'}" />
Excel関数
Binding Expressionsは、Microsoft Excelで使用できる関数のサブセットをサポートします。C1Binding構文内には、論理関数(IF、AND、OR)、数学関数(ABS、FLOOR、LOG、SUM)、統計関数(AVERAGE、COUNT、MAX)、およびテキスト関数(CONCATENATE、TRIM、UPPER)を記述できます。サポートされる関数の一覧については、製品ヘルプで確認することができます。
値の書式
C1Bindingオブジェクトには、連結値の書式設定の制御に使用できるStringFormatプロパティがあります。たとえば、次の式は計算結果を通貨書式で表示します。
<TextBlock Text="{c1:C1Binding Expression='Amount * 5%', StringFormat='c'}" />
条件付き書式
連結値に条件付き書式設定を適用するためには、条件付きロジックを実行するIF関数を使用します。たとえば、次のXAMLスニペットは、1,000より大きい値を太字で表示するように書式設定します。
<TextBlock
Text="{c1:C1Binding Expression = 'Amount'}"
FontWeight="{c1:C1Binding Expression='IF(Amount > 1000, |bold|, |normal|)' }" />
値の結合
テキスト関数を使用して、文字の置換、大文字または小文字への変換、複数の値の結合といった一般的な処理を実行できます。たとえば、CONCATENATE関数を使用すると、課税額に加えて総額を表示できます。
<TextBlock
Text="{c1:C1Binding Expression=
'CONCATENATE(Amount, " 消費税: ", Amount * 5%' }" />
XAML を崩さずに引用符を使用
XAML を崩すことなく連結式で引用符を使用できます。C1Binding Expression は、シングルクォーテーション(')とパイプ文字(|)の2つの形式のインライン引用符をサポートしています。たとえば、読みやすいように、上のXAMLスニペットを次のように書き直すことができます。
<TextBlock
Text="{c1:C1Binding Expression='CONCATENATE(Amount, | 消費税: |, Amount * 5%' }" />
簡潔かつ表現力豊かな XAML
C1Binding構文を使用することで、簡潔かつ表現力豊かなXAMLを記述できます。XAMLは、100%自己完結型です。ソリューション内から外部のコンバータを参照する必要はありません。
式の解析と評価
C1Bindingオブジェクトは、C1CalcEngineクラスを使用して式を解析および評価します。C1CalcEngineはパブリッククラスであり、文字列を解析してExpressionオブジェクトに変換したり、文字列を解析して結果の式を評価することができます。たとえば、ユーザーが「4+16」のような式を入力して計算を実行できるTextBoxを作成し、C1CalcEngineのEvaluateメソッドを使用して、このコントロールがフォーカスを失ったときに式を評価することができます。