zoukankan      html  css  js  c++  java
  • Change Data template dynamically

    1. Attached Property bound to task state. Any change will dynamically set data template.
    2. Visual State Manager

    DataTemplateSelector does not respond to PropertyChange notifications, so it doesn't get re-evaluated when your properties change.

    The alternative I use is DataTriggers that changes the Template based on a property.

    For example, this will draw all TaskModel objects using a ContentControl, and the ContentControl.Template is based on the TaskStatus property of the TaskModel

    <DataTemplate x:Key="OpenTaskTemplate" TargetType="{x:Type local:TaskModel}">
         <TextBlock Text="I'm an Open Task" />
    </DataTemplate> 
    
    <DataTemplate x:Key="ClosedTaskTemplate" TargetType="{x:Type local:TaskModel}">
         <TextBlock Text="I'm a Closed Task" />
     </DataTemplate>
    
    <DataTemplate DataType="{x:Type local:TaskModel}">
         <ContentControl Content="{Binding }">
             <ContentControl.Style>
                 <Style TargetType="{x:Type ContentControl}">
    
                     <!-- Default Template -->
                     <Setter Property="ContentTemplate" Value="{StaticResource OpenTaskTemplate}" />
    
                     <!-- Triggers to change Template -->
                     <Style.Triggers>
                         <DataTrigger Binding="{Binding TaskStatus}" Value="Closed">
                             <Setter Property="ContentTemplate" Value="{StaticResource ClosedTaskTemplate}" />
                         </DataTrigger>
                     </Style.Triggers>
                 </Style>
             </ContentControl.Style>
         </ContentControl>
     </DataTemplate>

    From: https://stackoverflow.com/questions/13136816/change-data-template-dynamically

  • 相关阅读:
    java 二分查找计算时间复杂度
    idea导出javadoc文档
    ext常用属性
    hibernate执行过程
    分布式架构初探
    web中几个context上下文的理解
    网上书城项目总结(servlet_jsp+javaBean)
    javaweb面试题01
    数据源和数据库连接池
    数据结构之必需知
  • 原文地址:https://www.cnblogs.com/itelite/p/4025611.html
Copyright © 2011-2022 走看看