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

  • 相关阅读:
    七种程序设计模式
    理清JavaScript正则表达式
    采用管道处理HTTP请求
    AngularJS之Service4
    Net Core-Razor
    中间件(Middleware)
    Redis集群明细文档(转)
    nginx 301跳转到带www域名方法rewrite(转)
    Redis启动多端口,运行多实例(转)
    web框架之Spring-MVC环境搭建(转)
  • 原文地址:https://www.cnblogs.com/itelite/p/4025611.html
Copyright © 2011-2022 走看看