Binding to static class property

我的未来我决定 提交于 2019-11-26 20:23:26

You can bind to ANY property on a static class using the x:Static markup extension but if thy do not implement any change tracking, it might cause errors on the refresh!

<TextBlock Text="{Binding Source={x:Static sys:Environment.MachineName}}" />

This has worked for me:

Text="{Binding Source={x:Static MyNamespace:MyStaticClass.MyProperty}, Mode=OneWay}"

Without Mode=OneWay I got an exception.

For those who use nested static classes to organize/seperate constants. If you need to Bind into nested static classes, It seems you need to use a plus (+) operator instead of the dot (.) operator to access the nested class:

{Binding Source={x:Static namespace:StaticClass+NestedStaticClasses.StaticVar}}

Example:

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

        }
    }
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!