Невозможно получить доступ к списку propertyResources из XAML - PullRequest
0 голосов
/ 07 ноября 2018

Я хочу получить доступ к свойству «Ресурсы» моего проекта WPF из файла XAML внутри того же проекта.

  • Я добавил ресурс «Text123» и установил модификатор доступа «Public»,
  • Я объявил пространство имен в своем файле XAML как xmlns:p="clr-namespace:MyProject.Properties"
  • Я добавил ссылку на свойство из содержимого кнопки как Content="{x:Static p:Resources.Text123}"

В результате я получаю сообщение об ошибке из Visual Studio, в котором говорится: Имя «Ресурсы» не существует в пространстве имен «clr-namespace: MyProject.Properties».

Что я могу сделать, чтобы избавиться от этой ошибки?

Файл Resources.resx существует в проекте и выглядит нормально. Даже в файле Resources.Designer.vb я могу видеть объявленный ресурс как Public ReadyOnly Property.

P.S: сгенерированный Resources.Designed.vb:

Option Strict On
Option Explicit On

Imports System

Namespace My.Resources

    'This class was auto-generated by the StronglyTypedResourceBuilder
    'class via a tool like ResGen or Visual Studio.
    'To add or remove a member, edit your .ResX file then rerun ResGen
    'with the /str option, or rebuild your VS project.
    '''<summary>
    '''  A strongly-typed resource class, for looking up localized strings, etc.
    '''</summary>
    <Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"),  _
     Global.System.Diagnostics.DebuggerNonUserCodeAttribute(),  _
     Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(),  _
     Global.Microsoft.VisualBasic.HideModuleNameAttribute()>  _
    Public Module Resources

        Private resourceMan As Global.System.Resources.ResourceManager

        Private resourceCulture As Global.System.Globalization.CultureInfo

        '''<summary>
        '''  Returns the cached ResourceManager instance used by this class.
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
            Get
                If Object.ReferenceEquals(resourceMan, Nothing) Then
                    Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("MyProject.Resources", GetType(Resources).Assembly)
                    resourceMan = temp
                End If
                Return resourceMan
            End Get
        End Property

        '''<summary>
        '''  Overrides the current thread's CurrentUICulture property for all
        '''  resource lookups using this strongly typed resource class.
        '''</summary>
        <Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)>  _
        Public Property Culture() As Global.System.Globalization.CultureInfo
            Get
                Return resourceCulture
            End Get
            Set
                resourceCulture = value
            End Set
        End Property

        '''<summary>
        '''  Looks up a localized string similar to Cancel.
        '''</summary>
        Public ReadOnly Property Text123() As String
            Get
                Return ResourceManager.GetString("Text123", resourceCulture)
            End Get
        End Property

    End Module
End Namespace

1 Ответ

0 голосов
/ 07 ноября 2018

Добавьте пространство имен по умолчанию к объявлению пространства имен, т.е. если ваше пространство имен по умолчанию - "WpfApp1", а модуль Resources находится в пространстве имен My.Resources, оно должно быть:

xmlns:p="clr-namespace:WpfApp1.My.Resources"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...