如何获取数据模板的 x:Key in 代码

本文关键字:Key 代码 in 何获取 获取 数据 | 更新日期: 2023-09-27 17:56:19

我有一个使用x:Key来标识自身的DataTemplate,如下所示:

<DataTemplate 
    x:Key="myTemplate
    >
    ...
</DataTemplate>

在其他一些 C# 代码中,我有一个对这个数据模板的引用,但实际上想要检索数据模板的 x:Key。

问题:

有没有办法在 C# 中从数据模板中检索数据模板的 x:Key?

如何获取数据模板的 x:Key in 代码

您可以遍历所有资源并检查其密钥。

public static string GetResourceInDictionary(ResourceDictionary dictionary, object item)
{
    return (from DictionaryEntry key in dictionary
            where key.Value == item
            select key.Key.ToString()).FirstOrDefault();
}

然后将其与:

string resourceKey = GetResourceInDictionary(this.Resources, myResource);

试试这个:

foreach (var key in this.Resources.Keys)
{
    Console.WriteLine(key);
}