首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTemplateSelector不被呼叫

DataTemplateSelector不被呼叫
EN

Stack Overflow用户
提问于 2013-11-14 18:50:36
回答 1查看 1.3K关注 0票数 0

我有一个用于远程控制RadTileView的模板选择器。没有错误,而且一切都“很好”,但是模板选择器SelectTemplate()从未被调用,所以程序不能在我的2个数据模板之间进行选择。有什么想法吗?我根本不知道怎么调试这个。谢谢。

我的数据模板定义和模板选择器xaml代码:

代码语言:javascript
复制
<DataTemplate x:Key="IncidentContentTemplate">code...</DataTemplate>


    <templateselectors:TCardTileViewTemplateSelector x:Key="TCardTemplateSelector" DefaultTCardViewModelTemplate="{StaticResource contentTemplate}"  IncidentTCardViewModelTemplate="{StaticResource IncidentContentTemplate}" />


</UserControl.Resources>

我的模板选择器:

代码语言:javascript
复制
public class TCardTileViewTemplateSelector : DataTemplateSelector
{

        public override DataTemplate SelectTemplate(object item, DependencyObject container)
        {

            if (item is IncidentTCard)
            {
                return this.IncidentTCardViewModelTemplate;
            }
            else
            {
                return this.DefaultTCardViewModelTemplate;
            } 
        }

        public DataTemplate IncidentTCardViewModelTemplate
        {
            get;
            set;
        }


        public DataTemplate DefaultTCardViewModelTemplate
        {
            get;
            set;
        }

}

我的RadTileView:

代码语言:javascript
复制
   <telerik:RadTileView Name="MainRadTileView"
                        ContentTemplate="{StaticResource contentTemplate}"
                        IsItemDraggingEnabled="{Binding ElementName=IsItemDraggingEnabledOption,Path=IsChecked}"
                        ItemsSource="{Binding Items}"
                        ItemTemplate="{StaticResource headerTemplate}"
                        ItemTemplateSelector="{StaticResource TCardTemplateSelector}"
                        MaximizeMode="{Binding ElementName=MaximizeModeOption,Path=SelectedItem}"
                        PreservePositionWhenMaximized="{Binding ElementName=PreservePositionWhenMaximizedOption,Path=IsChecked}"
                         TileStateChanged="tileView1_TileStateChanged"
                        TileStateChangeTrigger="{Binding ElementName=StateChangeOption, Path=SelectedItem}"/>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-14 19:14:38

来自ItemTemplateSelector中的备注部分

注意,如果设置了ItemTemplate,则忽略此属性。

简单解决方案:不要设置ItemTemplate属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19985896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档