博客
关于我
WPF -- DataTemplate与ControlTemplate结合使用
阅读量:433 次
发布时间:2019-03-06

本文共 1560 字,大约阅读时间需要 5 分钟。

如深入浅出WPF中的描述,DataTemplate为数据的外衣,ControlTemplate为控件的外衣。ControlTemplate控制控件的样式,DataTemplate控制数据显示的样式,DataTemplate是ControlTemplate的一部分。本文介绍DataTemplate与ControlTemplate结合使用的方法,其关键在于ContentPresenter,它是DataTemplate的树根,代表DataTemplate的实例。

场景

自定义Button,使其显示当前页与总页数,当页码变化时自动更新。

实现步骤
  1. 自定义Button.ControlTemplate;
  2. 自定义Button.ContentTemplate;
  3. 创建数据类;
  4. 创建ViewModel类;
  5. 绑定。
示例代码:
// xaml
// 数据类public class PageInfo : ViewModelBase{ public PageInfo(string currentPage, string totalPages) { this.CurrentPage = currentPage; this.TotalPages = totalPages; } public string CurrentPage { get { return currentPage; } set { currentPage = value; OnPropertyChanged("CurrentPage"); } } public string TotalPages { get { return totalPages; } set { totalPages = value; OnPropertyChanged("TotalPages"); } } private string currentPage; private string totalPages;}// viewmodel类public class TestViewModel : ViewModelBase{ public TextViewModel() { PageInfo = new PageInfo("1", "1"); } public PageInfo PageInfo { get { return pageInfo; } set { pageInfo = value; } } // 其它逻辑 private PageInfo pageInfo;}

转载地址:http://qkoyz.baihongyu.com/

你可能感兴趣的文章
PHP 取前一天或后一天、一个月时间
查看>>
Kafka 分布式的,基于发布/订阅的消息系统
查看>>
Spring Bean的加载
查看>>
Web笔记(一) Web 简介与开发环境搭建
查看>>
Java基础回顾-缓冲流
查看>>
JSONPath小试牛刀之Snack3
查看>>
更强的 JsonPath 兼容性及性能测试
查看>>
Weed3 for java 新的微型ORM框架
查看>>
利用 Solon-web 框架写一个 Hello World
查看>>
Solon Ioc 的注解对比Spring及JSR330
查看>>
Solon 1.2.12 发布,新的惊喜
查看>>
Solon rpc 之 SocketD 协议 - 消息订阅模式
查看>>
Python实现简单的梯度下降法
查看>>
Python的logging模块基本用法
查看>>
推荐系统实践 0x00 序
查看>>
Java基础:HashMap中putAll方法的疑惑
查看>>
关于C++中构造函数的常见疑问
查看>>
GeoServer2.17与Jetty9在Windows上的最佳安装实践
查看>>
Cesium 顶点着色器中求解模型坐标
查看>>
ESRI ArcGIS 产品线资源网站大集合
查看>>