定位WPF时找不到ObjectDatapRovider



我有一个项目以及解决方案中的主要项目。我想在此项目中的此XAML文件中本地将内容本地化。

我使用此处讨论的方式如何使用MVVM中的运行时间来更改UI语言?

但是我找不到任何方式。

<UserControl xmlns:languageHelper="clr-namespace:XX"
  <UserControl.Resources>
<ObjectDataProvider x:Key="Resources" ObjectType="{x:Type languageHelper:CultureResources}" MethodName="GetResourceInstance"/>
  </UserControl.Resources>
</UserControl>

我使用此代码查找objectdataprovider,但我不得通过

获得它
public static ObjectDataProvider ResourceProvider
    {
      get
      {
        if (m_provider == null)
          m_provider = (ObjectDataProvider)System.Windows.Application.Current.FindResource("Resources");
        return m_provider;
      }
    }
Resources.Culture = culture;
        ResourceProvider.Refresh();

它显示System.Windows.ResourcereferenceKeynotFoundException:'资源'未找到资源。'

问题是,您是在UserControls Resources中创建 ObjectDataProvider 。我认为您必须在app.xaml文件

中创建它

这是一个示例:

<Application.Resources>    
    <ResourceDictionary>           
        <ResourceDictionary.MergedDictionaries>
               <ObjectDataProvider x:Key="Resources"
                    ObjectType="{x:Type languageHelper:CultureResources}" 
                    MethodName="GetResourceInstance"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

相关内容

  • 没有找到相关文章

最新更新