在自定义控件中替换DataTemplate

33吨

我有一个MyAssembly带有定制WPF控件的程序集MyControl该控件显示不同类型的对象,并且为此类型使用特定的数据模板:

<MyControl.Resources>
  <DataTemplate DataType="{x:Type local:MyFirstType}">
     ...
  </DataTemplate>
  <DataTemplate DataType="{x:Type local:MySecondType}">
     ...
  </DataTemplate>
</MyControl.Resources>

问:如何允许程序员定义新的数据模板来替换由创建的UI MyControl这里的通用设计原则是什么?

悠洲

尝试使用ItemTemplateSelector / ContentTemplateSelector。ContentTemplateSelector ItemTemplateSelector

    public class TaskListDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate
        SelectTemplate(object item, DependencyObject container)
    {
        FrameworkElement element = container as FrameworkElement;

        if (element != null && item != null && item is Task)
        {
           //Set Template based on conditions
            Task taskitem = item as Task;

            if (taskitem.Priority == 1)
                return
                    element.FindResource("importantTaskTemplate") as DataTemplate;
            else 
                return
                    element.FindResource("myTaskTemplate") as DataTemplate;
        }

        return null;
    }
}


<Window.Resources>

<local:TaskListDataTemplateSelector x:Key="myDataTemplateSelector"/>

</Window.Resources>

<ListBox Width="400" Margin="10"
     ItemsSource="{Binding Source={StaticResource myTodoList}}"
     ItemTemplateSelector="{StaticResource myDataTemplateSelector}"
     HorizontalContentAlignment="Stretch"/>

我希望这会给您一个想法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在自定义控件中处理DataTemplate中的事件

来自分类Dev

绑定到ItemsControl的DataTemplate内部的自定义控件

来自分类Dev

WPF-从自定义ListBoxItem检索子DataTemplate控件

来自分类Dev

在Xamarin中创建自定义控件

来自分类Dev

用户控件中的自定义方法

来自分类Dev

Scrollviewer中的自定义控件

来自分类Dev

DynamicResource中的自定义控件属性

来自分类Dev

用户控件中的自定义事件

来自分类Dev

UITabBarController 中的自定义控件

来自分类Dev

自定义控件中的 Xamarin BindableProperty

来自分类Dev

xamarin 中的自定义控件示例?

来自分类Dev

如何替换/自定义情节提要导航控件中的后退按钮图像

来自分类Dev

如何用Fancybox 2.1.5中的自定义按钮替换默认控件?

来自分类Dev

未找到自定义控件中的子控件名称

来自分类Dev

如何使用 DataTemplate 在 ListBox 中自定义显示?

来自分类Dev

自定义DataTemplate-控件不占用整个网格列的宽度

来自分类Dev

在Generic.xaml中使用DataTemplate进行WPF自定义控件

来自分类Dev

在Generic.xaml中使用DataTemplate进行WPF自定义控件

来自分类Dev

需要修复:无法从 Listview-DataTemplate-ViewCell 内的自定义控件内的按钮打开模式

来自分类Dev

在自定义集成中替换URL

来自分类Dev

DataGridTemplateColumn的自定义控件

来自分类Dev

自定义gui控件

来自分类Dev

指令自定义控件

来自分类Dev

自定义控件Android

来自分类Dev

在WTL中的自定义绘制控件中实现滚动

来自分类Dev

如何在DateTimePicker控件中自定义日历?

来自分类Dev

设计器中的自定义控件未处理异常

来自分类Dev

AppBar WP8.1中的自定义控件

来自分类Dev

WPF中的自定义控件模板的Click事件

Related 相关文章

热门标签

归档