2

セル自体の値が 0 より大きい場合 (重要ではない)、データグリッド セルの背景色を変更するために使用される IValueConverter クラスがあります。

ここで、このデータグリッドを含むウィンドウのインスタンスをいくつか作成したいと考えています。Window インスタンスで定義されたいくつかの値に応じて、IValueConverter はデータグリッドのセルの背景に色を付けるかどうかを決定します。そのため、IValueConverter は Window クラスのインスタンスに応じて異なる仕事をします。

問題は次のとおりです。 XAML で ConverterParameter を渡すことができません。これは、そのパラメーターがウィンドウのすべてのインスタンスの修正プログラムになるためです。関連情報をプログラムで IValueConverter クラスに渡すことを考えましたが (これは必須です)、どうすれば IValueConverter クラスのインスタンスにアクセスできますか? 私の現在の解決策: IValueConverter クラスにいくつかの静的変数を入れて、Window クラスのインスタンスからそれらにアクセスできるようにしました。しかし、変数は静的であり、ValueConverter は各ウィンドウ インスタンスで同じように動作するため、このソリューションは不適切です。

Window インスタンスからプログラムで IValueConverter インスタンスにアクセスする方法を知っている人はいますか? ありがとう!

4

1 に答える 1

2

ConverterParameterにデータバインドできないため、次の2つのいずれかを実行できます(このSOの質問も参照してください)。

  1. ビューモデルに依存関係プロパティを追加し、複数値コンバーターを実行します
  2. ビューモデル全体をバインディング式に渡します
于 2012-04-04T20:20:38.027 に答える