社名変更のお知らせ  /  価格改定のお知らせ

  • 公式アカウント

Binding Expression for WPF を使用して、連結ステートメント内で単純な演算(+、-、*、/)を実行したり、文字列を連結したり、式を計算したりすることができます。複雑なコンバータを記述する必要はありません。

論理演算子と算術演算子

連結ステートメント内で単純な算術関数や数学関数を実行できます。一般的な論理演算子(=, >, <, <>, >=, <=)、算術演算子(+、-、*、/、^)を使用できます。また、かっこを使用して式をグループ化できます。たとえば、「Amount * 8.5%」は、Amount プロパティの値の 0.085 倍を返します。

<TextBlock Text="{c1:C1Binding Expression='Amount * 8.5%'}" />

Excel関数のサブセット

Microsoft Excelで使用できる関数のサブセットを提供します。C1Binding Expression内に、論理関数(IF、AND、OR)、数学関数(ABS、FLOOR、LOG、SUM)、統計関数(AVERAGE、COUNT、MAX)、およびテキスト関数(CONCATENATE、TRIM、UPPER)を記述することができます。

値の書式設定

C1Bindingオブジェクトには、連結値の書式設定の制御に使用できるStringFormatプロパティがあります。たとえば次のコードは、評価後の式に通貨書式を適用します。

<TextBlock Text="{c1:C1Binding Expression='Amount * 8.5%', StringFormat='c'}" />

条件付き書式設定

条件付きロジックを実行するIF関数を使用して、連結値に条件付き書式設定を適用できます。たとえば、次の XAML スニペットは、1,000 より大きい値を太字で表示するように書式設定します。

<TextBlock
Text="{c1:C1Binding Amount}"
FontWeight="{c1:C1Binding Expression='IF(Amount &gt; 1000, |bold|, |normal|)' }" />

テキスト関数

テキスト関数を使用して、文字の置換、大文字または小文字への変換、複数の値の結合といった一般的な処理を実行できます。たとえば次のコードは、CONCATENATE 関数を使用して、課税額に加えて総額を表示します。

<TextBlock
Text="{c1:C1Binding Expression=
'CONCATENATE(Amount, &quot; Tax: &quot;, Amount * 8.5%' }" />

引用符とパイプ文字

XAMLを崩さずに連結ステートメント内で引用符を使用できます。Binding Expression for WPFでは、" とパイプ文字(|)の2つの形式のインライン引用符をサポートしているので、XAMLを読みやすいように表現できます。たとえば上に記載したXAMLスニペットを次のように書き直すことができます。

<TextBlock
Text="{c1:C1Binding Expression='CONCATENATE(Amount, | Tax: |, Amount * 8.5%' }" />

簡潔かつ表現力豊かな XAML

構文を使用することで、簡潔かつ表現力豊かなXAMLを記述できます。XAMLは、100%自己完結型です。ソリューション内から外部のコンバータを参照する必要はありません。

計算エンジン

Binding Expression for WPFには、式を解析および評価するための C1CalcEngineクラスが用意されています。これにより、文字列を解析して Expression オブジェクトに変換したり、文字列を解析して結果の式を評価することができます。たとえば、ユーザーが式(例:「4 + 16」)を入力して計算を実行できるようなTextBox を作成し、C1CalcEngine の Evaluate メソッドを使用して、このコントロールがフォーカスを失ったときに式を評価することができます。