【转】【译】在 Windows 10 应用程序中注册任意依赖属性的改变
仍然有许多证明指出,在 Windows Runtime 的 XAML 里,缺失了很多 WPF 里的特性。其中一项是在 WPF 中,可以在依赖属性发生改变时获取到通知(链接)。现在,得益于 DependencyObject 类的 RegisterPropertyChangedCallback 这个新方法(链接),这项功能能够在 Windows 应用程序上实现了。这将为我们打开一个充满机会的新世界。当我们创建自定义控件或者对现有控件进行包装的时候,这项功能显得十分的有用。
与其去深入一些复杂的东西,我更倾向于使用一个快速的例子。一个拥有文本的文本框,但是没有办法在文本发生改变时得到通知。当然,我们也可以使用数据绑定,绑定到 Text 属性上,但是,现在请先忽略它。
现在,我们创建两个文本框和一个按钮。
<StackPanel>
<TextBlock x:Name="CounterText"/>
<Button Content="Click me" Click="OnButtonClicked"/>
<TextBlock x:Name="DuplicateTextBlock"/>
</StackPanel>
当这个按钮被点击的时候,我们将设置第一个文本框的文本。
private int _counter; private void OnButtonClicked(object sender, RoutedEventArgs e)
{
CounterText.Text = string.Format("Clicked {0} times", ++_counter);
}
同时,我们也为 CounterText 这个文本框注册一个 Text 属性变化的回调函数。在回调函数里,我们将设置另一个文本框的文本。
public MainPage()
{
this.InitializeComponent(); CounterText.RegisterPropertyChangedCallback(TextBlock.TextProperty, OnTextChanged);
} private void OnTextChanged(DependencyObject sender, DependencyProperty dp)
{
var t = (TextBlock)sender; DuplicateTextBlock.Text = t.Text;
}
现在,你每一次点击按钮,都会设置第一个文本框的文本,并且回调函数将会触发并设置第二个文本框的文本!

【转】【译】在 Windows 10 应用程序中注册任意依赖属性的改变的更多相关文章
- Windows 10 版本 1507 中的新 AppLocker 功能
要查看 Windows 10 版本信息,使用[运行]> dxdiag 回车 下表包含 Windows 10 的初始版本(版本 1507)中包括的一些新的和更新的功能以及对版本 1511 的 W ...
- 修复Windows 10 SDK 17763中NavigationView上的AcrylicBrush丢失
原文 修复Windows 10 SDK 17763中NavigationView上的AcrylicBrush丢失 Microsoft发布了新版本的Windows 10 UWP SDK Build 17 ...
- 使用Prism6 建立 Windows 10 通用程序.
使用Prism6 建立 Windows 10 通用程序. 目标: 使用prism6,建立Windows 通用程序项目. 1, 解决方案—添加新建项目—通用—空白应用—输入名称—确定—确定 2 ,引用上 ...
- Windows 10 子系统 Ubuntu 中安装 FastAdmin
Windows 10 子系统 Ubuntu 中安装 FastAdmin 打开 Windows 10 子系统 安装 Ubuntu 修改安装源为阿里的 %LOCALAPPDATA%\Packages\Ca ...
- 背水一战 Windows 10 (86) - 文件系统: 获取文件夹的属性, 获取文件夹的缩略图
[源码下载] 背水一战 Windows 10 (86) - 文件系统: 获取文件夹的属性, 获取文件夹的缩略图 作者:webabcd 介绍背水一战 Windows 10 之 文件系统 获取文件夹的属性 ...
- 解决windows 10英文版操作系统中VS2017控制台程序打印中文乱码问题
当您在windows 10英文版的操作系统中运行Vs2017控制台应用程序时,程序可能无法正常显示中文,中文都变成了乱码.这是由于大部分中文程序所使用的文字编码与Windows 英文系统的文字编码不同 ...
- Windows 10 UWP程序标题栏设置
在Windows 10程序中,以前只能用于全屏方式的Metro程序现在可以运行在窗口模式下了,并且改了个新名字,叫Windows 通用程序(Universal Windows app),简称UWP程序 ...
- 1)Win10-UWA开发 UWP应用操作方法、Windows 10应用程序的指南
孙广东 2015.8.22 全部任务类型(比方在列表中显示数据或创建导航窗格)的说明和代码演示样例. 在这一节 包含例如以下: 主题 描写叙述 Accessibility 创建通用的Windows ...
- Windows 10 Build 14997中Edge浏览器已默认阻止Flash运行
在上周末偷跑的 Windows 10 Build 14997 向我们传递了很多信息,新增了蓝光过滤器等功能,并有望装备在即将到来的 Creators Update 中.经过深入发掘,外媒发现新版系统中 ...
随机推荐
- jquery 判断checkbox是否被选中问题
1.jquery库2以上 $("#checkbox_check").click(function(){ alert($(this).prop("checked" ...
- java的Map浅析
Map<K,V>是以键-值对存储的(key-value), 而Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取.比较 key和 ...
- Hammer.js——给bootstrap添加触屏功能
Hammer.js qq群号(html5技术交流):158677025 手机端演示二维码(或直接在手机中输入网址:http://lilinfeng.cncoder.me 浏览效果): 一.前言 移 ...
- SQL Server多条件查询的实现
SQL Server多条件查询的实现 SQL Server多条件查询我们经常会用到,下面就教您如何使用存储过程实现SQL Server多条件查询,希望对您学习SQL Server多条件查询方面有所帮助 ...
- python 网络客户端编程端口,模块
协议 功能 端口 模块 HTTP 网页 80 httplib,urllib,xmlrpclib NNTP Usenet 新闻组 119 nntplib FTP 文件传输 20(21控制和命令端口) f ...
- OC - 缓存 - NSCache - 介绍
- Linux indent命令
一.简介 indent可辨识C的原始代码文件,并加以格式化,以方便程序设计师阅读. 二.选项 http://www.cnblogs.com/xuxm2007/archive/2011/11/03/22 ...
- Linux 磁盘分区存放文件和目录的数量 (inode)
文件系统格式centos7缺省是xfs,centos6缺省是ext4,centos5缺省是ext3ext3 文件数最大支持31998个,文件系统容量最大16TB,单个文件最大2TBext4 文件数最大 ...
- pyqt5和qtdesign的使用
http://blog.csdn.net/Angelasan/article/details/44917283 发现我的使用时候有点跟他不同. 我是 g: utf- -*- # Form implem ...
- java 事件监听
事件监听实现: 三要素: 1.事件源(数据源,要处理的数据) 2.事件 (承载数据,传递信息并被监听) 3.监听器 (负责对数据的业务处理) --该开发用例采用了Spring的事件监听 1. 定义事 ...