关于wpf:StaticExtension值无法解析

StaticExtension value cannot be resolved

WPF绑定到静态属性时遇到一些问题。在我的应用程序中,有一个名为Globals的类,其中包含ThisAddIn的静态属性。这个对象允许我访问一个User属性,该属性基本上就是我想在Binding中使用的属性。因此,我的XAML如下所示:

1
2
<TextBlock Text="{Binding Path=User.Name
                   , Source={x:Static Member=s:Globals.ThisAddIn}}" />

命名空间s由以下行在顶部声明:

1
xmlns:s="clr-namespace:ConsoleApplication16.Model"

我找到了很多关于如何在XAML中引用静态属性的方法,但是除此方法外,其他方法均无效,这对我来说似乎也是最合理的。我发现的一些示例根本没有使用Path或Member。

经过一些测试,我发现正确的方法是使用" x:Static Member"来定义要使用的类和静态属性,而Path会在此对象内定义正确的Properties,就像普通绑定一样。

尽管此解决方案可以毫无问题地进行编译,但会弹出XAMLParseException,直接告诉我StaticExtension值无法解析为枚举,静态字段或静态属性。


确保Globals.ThisAddIn是公开的。

如果您使用的是资源文件,也可能会遇到这种情况,在这种情况下,还需要确保将访问修饰符设置为Public

enter image description here


在输出库项目中,应确保默认情况下已将Resources.resx文件的生成器修改为PublicResXFileCodeGenerator而不是ResXFileGodeGenerator。

将以下内容替换为...

Not public resource

这个

correct public resource