为了解决NotifyPorpertyChanged的线程与界面绑定异步更新冲突问题,所以查看相关资料后,将自己的NotifyPropertyChanged作了改进。
1.问题起因
在开发C#应用程序,通常后使用到界面控件特定属性(Enable | Text)与指定的类成员绑定。但如果指定类成员变量在线程中和界面需异步更新时,会出现异常情况(界面显示异常)。
以下代码未作异步更新,示例如下:
public class TubeConsumedRecord : INotifyPropertyChanged
{
/// <summary>
/// The lock tube
/// </summary>
private object lockTube;
/// <summary>
/// The available count
/// </summary>
private int availableCount;
/// <summary>
/// 在属性值更改时发生。
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// Gets or sets the available tube count.
/// </summary>
/// <value>The available tube count.</value>
public int AvailableTubeCount
{
get
{
return availableCount;
}
set
{
if (this.availableCount == value)
{
return;
}
this.availableCount = value;
OnPropertyChanged(new PropertyChangedEventArgs("Av