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