参考: https://wpf.2000things.com/2017/04/06/1204-using-a-datatrigger-to-change-content-in-a-contentpresenter/

<Window.Resources>
<DataTemplate x:Key="DefaultContent">
<StackPanel>
<TextBlock Margin="10" Text="Some default content here.."/>
<TextBlock Margin="10" Text="Maybe show progress for operation"/>
</StackPanel>
</DataTemplate> <DataTemplate x:Key="AllDoneContent">
<StackPanel>
<TextBlock Margin="10" Text="** This is the ALL DONE content..."
Foreground="Green"/>
<TextBlock Margin="10" Text="Put anything you like here"/>
<Button Margin="10" Content="Click Me" HorizontalAlignment="Left"/>
</StackPanel>
</DataTemplate> <Style x:Key="MyContentStyle" TargetType="ContentPresenter">
<Setter Property="ContentTemplate" Value="{StaticResource DefaultContent}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding JobDone}" Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource AllDoneContent}"/>
</DataTrigger>
</Style.Triggers>
</Style> </Window.Resources> <Grid Margin="10">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions> <ContentPresenter Grid.Row="0" Style="{StaticResource MyContentStyle}" Content="{Binding}"/> <Separator Grid.Row="1"/> <CheckBox Grid.Row="2" Margin="10" Content="Mark job done" IsChecked="{Binding JobDone}"/>
</Grid>

ContentControl通过DataTrigger进行切换模板时,原来绑定的模板会引发DataContext事件

最新文章

  1. 安卓,支付宝app登录时,提示 服务器安全证书已过期或不可信任,请问怎么解决
  2. Differences Between Xcode Project Templates for iOS Apps
  3. delphi 中怎么知道某一个月有多少天
  4. 使用lua给wireshark编写uTP的Dissector
  5. C#一般处理程序获取Session
  6. C++ - new与malloc的差别
  7. BZOJ 1025 SCOI2009 游戏 动态规划
  8. 最受欢迎web前端技术总结
  9. Android:ADB server didn&#39;t ACK或者adb server is out of date. killing解决办法
  10. Freemarker中如何遍历List
  11. 随心测试_软测基础_001&lt;说在开始_测试理念&gt;
  12. 04--STL序列容器(Stack和Queue)
  13. linux c 编程 ------ 通过设备节点调用驱动
  14. Proxy 示例
  15. mysql安装后初始密码
  16. Swing文本域的编辑
  17. laravel5.1接收ajax数据
  18. 跟我学Spring3(9.2):Spring的事务之事务管理器
  19. 原创:微信小程序+WEB使用JS实现注册【60s】倒计时功能
  20. 关于Unity中的碰撞检测和管理(2D)

热门文章

  1. DBCA Does Not Display ASM Disk Groups In 11.2
  2. requirejs——config
  3. PHP 性能优化之 PHP-FPM
  4. jar 运行报错:找不到或无法加载主类
  5. Ajax 简单实例,其实就是js里面内容有些不同而已(转载)
  6. 75. Sort Colors (Array)
  7. 410. Split Array Largest Sum 把数组划分为m组,怎样使最大和最小
  8. Java 面试知识点汇总
  9. linux系统如何安装vmware Tools(下面以CentOS为例)
  10. java 将一个数组中的值按逆序重新存放,例如,原来顺序为:9,5,7,4,8,要求改为:8,4,7, 5,9。