私はPrism 6を使用してアプリケーションを構築していますが、MVVM、データバインディング、これらのデザインパターンはすべて新しいです。このアプリケーションでは、ビューモデルの一部のプロパティの値によって異なる色を表示するという要件があります。そうするにはPrismアプリケーションでのSolidColorBrushのバインド
ので、同じように、私はリソースディクショナリにいくつかのSolidColorBrushを持っている:<SolidColorBrush x:Key="{x:Static status:Status.notViewed}">#FFe74856</SolidColorBrush>
はその後、私の見解では、私が使用:prism:ViewModelLocator.AutoWireViewModel="True"
それは、対応するビューモデルに配線しています。私はキャンバス上のバインディングも使用していますが(グリッドか何か他のもの、私は気にしません)、<Canvas Background="{Binding B}" Margin="5" />
。副次的なこととして、他の要素にバインドされた要素があります。たとえば、文字列にバインドされた日付を表示するような要素があり、それが問題ありません。
私のビューモデルでは、対応するプロパティB
をバインディングpublic SolidColorBrush B = (SolidColorBrush)Application.Current.Resources[Status.notViewed];
に作成します。
私は自分のアプリケーションを実行して、キャンバスは、しかし、私はI出力のビューモデル(Console.WriteLine("Color: {0}", B.ToString());
0のコンストラクタ内のコンテンツと、私は右の値を取得するためB
ブラシが含まれていることをかなり確信している...白いままです。
私が間違って何をしているのですか?
おかげ
あなたは私の問題を解決するのを手伝っただけでなく、フィールドとプロパティの違いを私が実際には分かっていないこともわかりました。私は基本に戻る必要があると思う:) –