Подтвердить что ты не робот

Ошибка в привязке строки ресурса с представлением в wpf

Я пытаюсь связать статическую строку, определенную в заголовке Resource.resx. Когда я запускаю приложение, я получаю следующую ошибку ниже. Исследуя ошибку в этом форуме, я обнаружил, что сгенерированный класс ресурсов помечен как внутренний, а WPF пытается разрешить ресурс с другой сборки, поэтому он не будет успешным, пока ваши ресурсы не будут отмечены как общедоступные. То же самое у меня есть один проект, который содержит мои взгляды и ресурсы, определенные мне не нужна какая-либо сборка друзей, я считаю, что внутренний класс можно получить в рамках одной и той же сборки. Я нашел аналогичную запись со стороны Нажмите здесь, в которой он предложил использовать 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: 
4b9b3361

Ответ 1

Кажется, вам нужно использовать генератор PublicResXFileCodeGenerator. Вы попытались щелкнуть правой кнопкой мыши файл ресурсов в Visual Studio Solution Explorer и выбрать параметр Properties, а затем установить для свойства Custom Tool значение PublicResXFileCodeGenerator? Вы также можете установить для свойства Access Modifier значение Public в окне конструктора ресурсов в Visual Studio.