相关疑难解决方法(0)

如何在WPF中的DataTemplateSelector类中查找UserControl中的资源?

我正在创建自己的UserControl,我在XAML 的UserControl.Resources部分下有两个不同的DataTemplates .我想在这两个datatemplates之间进行选择,具体取决于listview中显示的对象的属性值.我这样做是通过创建一个自定义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;
        }
Run Code Online (Sandbox Code Playgroud)

上面的示例来自此处:ItemsControl.ItemTemplateSelector属性

.net c# wpf resources wpf-controls

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

.net ×1

c# ×1

resources ×1

wpf ×1

wpf-controls ×1