StaticExtension值无法解析

时间:2012-03-19 16:06:06

标签: wpf xaml data-binding static xamlparseexception

我遇到了WPF绑定到静态属性的一些问题。在我的应用程序中,有一个名为 Globals 的类,其中包含 ThisAddIn 静态属性。这个对象允许我访问一个User属性,它基本上是我想在我的Binding中使用的。所以,我的XAML看起来像这样:

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

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

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

我发现了很多不同的方法,如何在XAML中引用静态属性,但除了这一个之外,它们都没有工作,这对我来说似乎也是最合乎逻辑的。我发现的一些样本根本没有使用Path或Member。

经过一些测试后我找到了正确的方法,使用“x:Static Member”来定义你想要使用的类和静态属性,而Path在这个对象中定义了正确的属性,就像正常一样绑定会做。

虽然此解决方案在没有任何抱怨的情况下编译,但会弹出XAMLParseException直接告诉我 StaticExtension值无法解析为枚举,静态字段或静态属性。

2 个答案:

答案 0 :(得分:81)

确保Globals.ThisAddIn是公开的。

如果您使用资源文件,也可以获得此信息,在这种情况下您还需要确保访问修饰符设置为Public

enter image description here

答案 1 :(得分:31)

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

将以下内容替换为......

Not public resource

这个

correct public resource