Я создаю свой собственный UserControl, и у меня есть два разных DataTemplates в разделе UserControl.Resources в моем XAML. Я хочу выбирать между этими двумя шаблонами данных в зависимости от значения свойства объектов, отображаемых в списке. Я делаю это, создавая собственный класс DataTemplateSelector и переопределяя метод SelectTemplate, который должен возвращать шаблон DataTemplate, который я хочу использовать. Однако я понятия не имею, как «найти» мои шаблоны данных, расположенные в разделе ресурсов UserControls, все примеры, которые я видел, извлекают шаблоны данных только из Window.Resources. В этом примере они извлекают текущий MainWindow, а затем используют FindResource для поиска DataTemplate. Как мне получить свой UserControl аналогично?:
public override DataTemplate
SelectTemplate(object item, DependencyObject container)
{
if (item != null && item is AuctionItem)
{
AuctionItem auctionItem = item as AuctionItem;
Window window = Application.Current.MainWindow;
switch (auctionItem.SpecialFeatures)
{
case SpecialFeatures.None:
return
window.FindResource("AuctionItem_None")
as DataTemplate;
case SpecialFeatures.Color:
return
window.FindResource("AuctionItem_Color")
as DataTemplate;
}
}
return null;
}
Приведенный выше пример взят отсюда: ItemsControl.ItemTemplateSelector Свойство