【问题标题】:DataTemplateSelector not getting calledDataTemplateSelector 没有被调用
【发布时间】:2013-11-14 18:50:36
【问题描述】:

我有一个 Telerik 控件 RadTileView 的模板选择器。没有错误,一切正常,但模板选择器 SelectTemplate() 永远不会被调用,因此程序不会在我的 2 个数据模板之间进行选择。有任何想法吗?我根本不知道如何调试这个。谢谢。

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

<DataTemplate x:Key="IncidentContentTemplate">code...</DataTemplate>


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


</UserControl.Resources>

我的模板选择器:

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:

   <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}"/>

【问题讨论】:

    标签: .net wpf telerik


    【解决方案1】:

    来自ItemTemplateSelector 的备注部分:

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

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

    【讨论】:

    • 非常感谢!我不知道(尽管事后看来这当然是有道理的)。
    猜你喜欢
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 2019-03-31
    • 2012-12-16
    • 2015-03-28
    • 2012-12-04
    相关资源
    最近更新 更多