概述
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。??
转载于:https://www.cnblogs.com/Jeely/p/11075991.html
最后
以上就是踏实外套为你收集整理的WPF:数据绑定--PropertyChangeNotification属性更改通知 的全部内容,希望文章能够帮你解决WPF:数据绑定--PropertyChangeNotification属性更改通知 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复