访问系统:C#中的字符串资源字典XAML

JB.*_*JB. 2 c# xaml localization locbaml resourcedictionary

如何使用C#访问资源字典中的内容?

例如,这是我在XAML中的代码:

<system:String x:Key="NewGroup">New Group Name</system:String>
Run Code Online (Sandbox Code Playgroud)

我想在C#中访问它:

    private void OnAddGroup(object sender, ExecutedRoutedEventArgs e)
    {

        BooksGroupInfo group = new BooksGroupInfo();
        group.GroupName = "New Group" + TheTabControl.Items.Count;
        TabItem tab = AddGroup(group);
        _currentLibrary.addGroup(group);
        _currentLibrary.CurrentGroup = group;

    }
Run Code Online (Sandbox Code Playgroud)

而不是在C#中键入"新组",我想替换它并在XAML中的资源字典中访问.因此该命令将自动获取资源字典中的Name.

我尝试了几个解决方案,如:

(System.String)this.FindResource("NewGroup"); 
Application.Current.Resources[typeof(System.String)]; 
Run Code Online (Sandbox Code Playgroud)

等等...但它们似乎不起作用.

我正在使用locbaml进行本地化,它不解析C#上的文本/名称(或者我不知道如何),这是我认为唯一可行的解​​决方案.

bit*_*onk 5

通常使用FrameworkElement.FindResource,如下所示: string s = this.FindResource("NewGroup") as string;有效.具有键"NewGroup"的资源更可能不存在于您的控件或窗口的范围内(无论this是什么).您必须确保资源在那里.例如,如果您的资源来自另一个文件,则必须使用MergedDictionaries.您可以测试资源是否实际上是可访问的,尝试从属于您的代码隐藏的XAML访问它OnAddGroup.

我希望这是有道理的.