1

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

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

在其他一些 C# 代码中,我有对此 DataTemplate 的引用,但实际上想要检索 DataTemplate 的 x:Key。

问题:

有没有办法在 C# 中从 DataTemplate 中检索 DataTemplate 的 x:Key?

4

2 回答 2

1

您可以遍历所有资源并检查它们的密钥。

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);
于 2013-01-27T22:05:58.690 回答
0

尝试这个:

foreach (var key in this.Resources.Keys)
{
    Console.WriteLine(key);
}
于 2013-01-27T22:06:14.380 回答