StaticExtension值无法解析

Rop*_*per 55 data-binding wpf xaml static xamlparseexception

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

<TextBlock Text="{Binding Path=User.Name
                   , Source={x:Static Member=s:Globals.ThisAddIn}}" />
Run Code Online (Sandbox Code Playgroud)

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

xmlns:s="clr-namespace:ConsoleApplication16.Model"
Run Code Online (Sandbox Code Playgroud)

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

经过一些测试后我找到了正确的方法,使用"x:Static Member"来定义你想要使用的类和静态属性,而Path在这个对象里面定义了正确的属性,就像普通绑定一样.

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

Chu*_*nce 88

确保Globals.ThisAddIn是公开的.

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

在此输入图像描述

  • 而已!在设计时正确设置属性值是没有意义的,然后在运行时它会因此异常而失败.很混乱. (8认同)
  • 我来到这里是因为我的resx文件有内部修饰符.将其更改为公开并且有效.同样,在设计时它起作用,令人困惑 (3认同)

小智 32

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

替换以下......

不是公共资源

这个

正确的公共资源

  • 我希望我能给你一些赏金,谢谢. (2认同)