我正在尝试绑定在Resources.resx中定义的静态字符串“title”。当我运行应用程序时,我得到下面的错误。
经过在此站点上调查该错误,我发现生成的Resources类被标记为internal,而WPF正在尝试从另一个程序集解析资源,因此除非将资源标记为public,否则无法成功。同样,我有一个包含我的视图和资源定义的单个项目。
我不需要任何友元程序集。我相信内部类可以在同一程序集中访问。我在这里看到了一篇类似的帖子,其中一位用户建议使用ResXFileCodeGenerator。您对此有什么看法?
System.Windows.Markup.XamlParseException occurred
HResult=-2146233087
Message='Provide value on 'System.Windows.Markup.StaticExtension' threw an exception.' Line number '11' and line position '9'.
Source=PresentationFramework
LineNumber=11
LinePosition=9
StackTrace:
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at TestApp.MainWindow.InitializeComponent() in ~\TestApp\TestApp\MainWindow.xaml:line 1
at TestApp.MainWindow..ctor() in ~\TestApp\TestApp\MainWindow.xaml.cs:line 28
InnerException: System.ArgumentException
HResult=-2147024809
Message='TestApp.Properties.Resources.Firstname' StaticExtension value cannot be resolved to an enumeration, static field, or static property.
Source=System.Xaml
StackTrace:
at System.Windows.Markup.StaticExtension.ProvideValue(IServiceProvider serviceProvider)
at MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
InnerException:
PublicResXFileCodeGenerator
生成器。你尝试在 Visual Studio 解决方案资源管理器中右键单击资源文件,选择属性
选项,然后将自定义工具
属性设置为PublicResXFileCodeGenerator
吗?你也可以在 Visual Studio 的资源设计器窗口中将访问修饰符
属性设置为Public
。 - Sheridan