Какой ключ использовать при добавлении шаблона данных к ресурсам элемента управления - PullRequest
0 голосов
/ 29 января 2009

У меня есть шаблон данных, который определен в файле XAML. Корнем XAML является не словарь ресурсов, а сам шаблон данных. Теперь я хочу добавить этот шаблон данных к ресурсам элемента управления. К сожалению, я не знаю, какой ключ использовать.

myControl.Resources.Add(???, dataTemplate);

Хотя я использую свойство DataType шаблонов данных (то есть тип, который я хочу шаблонировать), механизм поиска ресурсов WPF не использует мой шаблон данных.

Кто-нибудь? Спасибо!

EDIT: Я знаю, что со стилями тип цели мог бы сработать, но с шаблонами данных это выглядит по-другому ...

EDIT:

Ответ: Хорошо, я немного отладил. Вот правильный код

myControl.Resources.Add(new DataTemplateKey(typeof(...)), dataTemplate);

Ответы [ 2 ]

0 голосов
/ 29 января 2009

На самом деле Мозер прав,

DataTemplates работают с объектами данных .. ControlTemplates для хорошо .. управления ... Если ваш DataTemplate для, скажем, объектов Car, используйте пример Mosers, например:

myControl.Resources.Add(typeof(Car), dataTemplate);

Установите объект Car в DataContext элемента управления, который должен использовать этот DataTemplate, et voila:)


Или вы всегда можете составить свой собственный ключ:

myControl.Resources.Add("MyAwesomeDataTemplate", dataTemplate);

А затем установите свойство Template следующим образом:

Template="{StaticResource MyAwesomeDataTemplate}"
0 голосов
/ 29 января 2009

используйте в качестве ключа тип, для которого разработана таблица данных: myControl.Resources.Add (typeof (TheType), dataTemplate);

...