绑定到静态类属性

Vin*_*rya 49 c# wpf binding textblock

我想将文本块文本绑定到静态类的属性.只要静态类的属性值发生更改,它就应该反映到另一个窗口或自定义控件上的文本块.

rud*_*ler 70

您可以使用x:Static标记扩展名绑定到静态类上的ANY属性,但如果您没有实现任何更改跟踪,则可能会导致刷新错误!

<TextBlock Text="{Binding Source={x:Static sys:Environment.MachineName}}" />
Run Code Online (Sandbox Code Playgroud)


NoO*_*One 18

这对我有用:

Text="{Binding Source={x:Static MyNamespace:MyStaticClass.MyProperty}, Mode=OneWay}"
Run Code Online (Sandbox Code Playgroud)

没有Mode=OneWay我得到例外.

  • @ARidder101 不知道。对不起。我已经有一段时间没处理这件事了。但这可能只是智能感知中的一些错误。 (2认同)

Cod*_*dyF 17

对于那些使用嵌套静态类来组织/分离常量的人.如果需要绑定到嵌套的静态类,似乎需要使用加号(+)运算符而不是点(.)运算符来访问嵌套类:

{Binding Source={x:Static namespace:StaticClass+NestedStaticClasses.StaticVar}}
Run Code Online (Sandbox Code Playgroud)

例:

public static class StaticClass
    {
        public static class NestedStaticClasses
        {
            public static readonly int StaticVar= 0;

        }
    }
Run Code Online (Sandbox Code Playgroud)