【发布时间】:2009-05-27 14:27:15
【问题描述】:
我正在创建自己的 UserControl,并且在我的 XAML 的 UserControl.Resources 部分下有两个不同的 DataTemplate。我想根据列表视图中显示的对象的属性值在这两个数据模板之间进行选择。为此,我创建了一个自定义 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;
}
【问题讨论】:
标签: c# .net wpf resources wpf-controls