我正在创建自己的 UserControl,并且在 XAML的UserControl.Resources部分下有两个不同的 DataTemplates。我想根据列表视图中显示的对象的属性值在这两个数据模板之间进行选择。我通过创建一个自定义DataTemplateSelector类并覆盖应该返回我希望使用的 DataTemplate的SelectTemplate方法来做到这一点。但是,我不知道如何“找到”位于 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;
}