静的プロパティへの WPF バインディングに関するいくつかの問題に直面しています。私のアプリケーションには、ThisAddInへの静的プロパティを含むGlobalsというクラスがあります。このオブジェクトを使用すると、基本的にバインディングで使用したいユーザー プロパティにアクセスできます。したがって、私の XAML は次のようになります。
<TextBlock Text="{Binding Path=User.Name
, Source={x:Static Member=s:Globals.ThisAddIn}}" />
名前空間sは、次の行で先頭に宣言されています。
xmlns:s="clr-namespace:ConsoleApplication16.Model"
XAML で静的なプロパティを参照する方法について、さまざまなアプローチを見つけましたが、これを除いてどれも機能しませんでした。これは、私にとって最も論理的でもあるようです。私が見つけたいくつかのサンプルは、Path または Member をまったく使用していませんでした。
いくつかのテストの後、これを行う正しい方法を見つけました。「x:Static Member」を使用して、使用するクラスと静的プロパティを定義し、パスは、通常のバインディングと同じように、このオブジェクト内の正しいプロパティを定義します.
このソリューションは問題なくコンパイルされますが、XAMLParseException がポップアップし、StaticExtension 値を列挙型、静的フィールド、または静的プロパティに解決できないことが直接通知されます。