テキストブロックテキストを静的クラスのプロパティにバインドしたい。静的クラスのプロパティ値が変更されるたびに、他のウィンドウまたはカスタムコントロールにあるテキストブロックに反映する必要があります。
x:Static マークアップ拡張を使用して静的クラスの任意のプロパティにバインドできますが、変更追跡を実装しない場合、更新時にエラーが発生する可能性があります!
<TextBlock Text="{Binding Source={x:Static sys:Environment.MachineName}}" />
これは私のために働いています:
Text="{Binding Source={x:Static MyNamespace:MyStaticClass.MyProperty}, Mode=OneWay}"
Mode=OneWay
がなければ、例外が発生しました。
ネストされた静的クラスを使用して定数を整理/分離する人向け。ネストされた静的クラスにバインドする必要がある場合、ドット(。)演算子の代わりにプラス(+)演算子を使用して、ネストされたクラスにアクセスする必要があるようです。
{Binding Source={x:Static namespace:StaticClass+NestedStaticClasses.StaticVar}}
例:
public static class StaticClass
{
public static class NestedStaticClasses
{
public static readonly int StaticVar= 0;
}
}