如何在代码中获取DataTemplate的x:Key?

时间:2013-01-27 22:04:24

标签: c# .net wpf

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

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

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

问题:

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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

试试这个:

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