WPF:数据绑定--PropertyChangeNotification属性更改通知
PropertyChangeNotification属性更改通知
实现效果:
1.拍卖金额自动随属性值变化而通知界面绑定的值变化。
关键词 :
- INotifyPropertyChanged
- ObservableCollection<T>
界面xaml:
数据模板
<DataTemplate x:Key="BidItemDataTemplate">
<Canvas Width="300" Height="20">
<TextBlock FontSize="14" Foreground="DarkSlateGray"
Width="180" Canvas.Left="0" Text="{Binding Path=BidItemName}"/>
<TextBlock FontSize="14" Foreground="DarkSlateBlue"
Text="$" Canvas.Left="180"/>
<TextBlock FontSize="14" Foreground="DarkSlateBlue"
Width="80" Canvas.Left="190" Text="{Binding Path=BidItemPrice}"/>
</Canvas>
</DataTemplate>
<ItemsControl Name="MyListBox" DockPanel.Dock="Top" Background="Silver"
Width="315" Height="80"
ItemsSource="{Binding Source={StaticResource MyDataSource}}"
ItemTemplate="{StaticResource BidItemDataTemplate}"/>
后台代码:
数据类,显示其中的一个属性更通知:
public decimal BidItemPrice
{
get { return _biditemprice; }
set
{
if (_biditemprice.Equals(value) == false)
{
_biditemprice = value;
// Call OnPropertyChanged whenever the property is updated
OnPropertyChanged("BidItemPrice");
}
}
}
具体业务代码:
初始化类时执行每隔一段时间,更新属性的值,然后作为绑定源反映到界面数值变动。
public class BidCollection : ObservableCollection<Bid>
{
private readonly Bid _item1 = new Bid("Perseus Vase", (decimal) 24.95);
private readonly Bid _item2 = new Bid("Hercules Statue", (decimal) 16.05);
private readonly Bid _item3 = new Bid("Odysseus Painting", (decimal) 100.0);
public BidCollection()
{
Add(_item1);
Add(_item2);
Add(_item3);
CreateTimer();
}
private void Timer1_Elapsed(object sender, ElapsedEventArgs e)
{
_item1.BidItemPrice += (decimal) 1.25;
_item2.BidItemPrice += (decimal) 2.45;
_item3.BidItemPrice += (decimal) 10.55;
}
private void CreateTimer()
{
var timer1 = new Timer
{
Enabled = true,
Interval = 2000
};
timer1.Elapsed += Timer1_Elapsed;
}
}
扩展:
- 设置 Enabled 到 true 等同于调用 Start, ,而设置 Enabled 到 false 等同于调用 Stop。
- 如果 Enabled 设置为 true 和 AutoReset 设置为 false, ,则 Timer 引发 Elapsed 事件仅当第一次间隔到期。
- 要引发的信号 Elapsed 事件总是在排队等待执行 ThreadPool 线程。 这可能会导致 Elapsed 后引发事件 Enabled 属性设置为 false。??
WPF:数据绑定--PropertyChangeNotification属性更改通知的更多相关文章
- WPF——数据绑定及属性改变事件
一.首先需要封装一下文本框的属性,并且在实体类中添加一个实体类的属性改变函数 public class User : INotifyPropertyChanged //INotifyPropertyC ...
- 属性更改通知(INotifyPropertyChanged)——针对ObservableCollection
问题 在开发webform中,wpf中的ObservableCollection<T>,MSDN中说,在添加项,移除项时此集合通知控件,我们知道对一个集合的操作是CURD但是恰恰没有Upd ...
- WPF数据绑定详解
元素绑定 数据绑定最简单的形式是,源对象是WPF元素而且源属性是依赖属性.依赖项属性具有内置的更改通知支持,当在源对象中改变依赖项属性的值时,会立即更新目标对相中的绑定属性. <!--Xaml程 ...
- 微软原文翻译:适用于.Net Core的WPF数据绑定概述
原文链接,大部分是机器翻译,仅做了小部分修改.英.中文对照,看不懂的看英文. Data binding overview in WPF 2019/09/19 Data binding in Windo ...
- 【WPF学习笔记】之WPF基础:依赖关系属性和通知
这些天来,对象似乎已经忙得晕头转向了.每个人都希望它们做这做那.Windows® Presentation Foundation (WPF) 应用程序中的典型对象会接到各种各样不同的请求:有要求绑定到 ...
- WPF 数据绑定 1_1 基础知识&绑定到元素属性
A.数据绑定基础: 数据源对象:WPF将从该对象中提取信息,交由目标对象进行显示. 目标对象:从数据源中提取信息,并赋给该对象的属性. B.绑定到元素属性 最简单的绑定情形则是将一个源对象指定为一个W ...
- wpf 自定义依赖性属性 作用之一 对数据绑定的支持
依赖属性:定义,声明,注册 依赖属性,在数据绑定中,数据绑定,分为源对象(数据源)和目标对象(显示数据). 只有源对象为依赖对象,属性为依赖属性时,该属性才会在属性发生变化时,通知目标对象进行数据更改 ...
- WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果
原文:WPF Label控件在数据绑定Content属性变化触发TargetUpdated事件简单实现类似TextChanged 事件效果 本以为Label也有TextChanged 事件,但在使 ...
- WPF的依赖属性
Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR)属性的功能,这些服务通常统称为 WPF 属性系统.由 WPF 属 ...
随机推荐
- openSUSE中启用apache mod_rewrite
1. 编辑 "/etc/sysconfig/apache2"文件 查找 APACHE_MODULES,你应该会找到一行像 APACHE_MODULES="actions ...
- 【JZOJ3318】Brunhilda的生日
description 除去对铁质盔甲强烈的热爱,Brunhilda是一个正常的7岁女孩.近期,她正在策划一个完美的生日派对.她发明了如下的一个游戏:所有的孩子在一个数k被宣读之前不停地跑来跑去.当这 ...
- duilib教程之duilib入门简明教程5.自绘标题栏
如果大家有做过标题栏的自绘,肯定会感慨各种不容易,并且现有的一些资料虽然完美的实现了功能,但是代码比较乱,需要自行整理.如果用duilib,就是小case啦. duilib其实并没有区分标题栏和 ...
- C++编程规范和编译过程详解
前言:因为c++基础打得不牢,所以准备花点时间再学一下c++的基础知识,主要是看网易云课堂里面的免费课程,把一些知识点做个笔记记下来. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- js 验证图片
var selectedImg = e.target.files[0]; //获取图片 var isPic = /^(image\/bmp|image\/gif|image\/jpeg|image\/ ...
- 国内平台比特币(Bitcoin)搬砖流程教学
建议搬砖时要的价差,实际费用与利润请自行计算,避免亏损或白做工请自行拿捏利润. 请搬砖前要先自行操作与确认双边平台的存取速度.利於拿捏时间,避免时间差导致亏损. (所有内容 仅供参考 盈亏自负) 搬砖 ...
- Quartz:Quartz
ylbtech-Quartz:Quartz Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用.Qu ...
- iOS的Runtime机制下给类别(category)添加属性、替换原有类的方法执行
一.Runtime的理解 OC是面向对象的语言这是常识,其实就是通过Runtime机制动态创建类和对象,这里只是简单的运用runtime的使用! 二.类别(category)添加属性_使用前记得导入头 ...
- C++写矩阵的转置
(2019年2月19日注:这篇文章原先发在自己github那边的博客,时间是2017年2月5日) 对于任意非n阶矩阵的转置,用c++应该怎么写代码,思考了一下,发现并没有那么简单,上网找到了一个比较好 ...
- 《DSP using MATLAB》Problem 8.21
代码: %% ------------------------------------------------------------------------ %% Output Info about ...