INotifychanged 接口的用途
Purpose of INotifychanged interface
我对编程很陌生。尝试使用本教程了解 MVVM 的基本思想 http://social.technet.microsoft.com/wiki/contents/articles/13536.easy-mvvm-examples-in-extreme-detail.aspx
我从这段代码中删除了接口“:INotifypropertychanged”(删除了那些词)。该程序仍然按预期运行和运行。那么INotifyPropertychanged的作用是什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Windows;
using System.Windows.Threading;
namespace MvvmExample.ViewModel
{
class ViewModelBase : INotifyPropertyChanged
{
//basic ViewModelBase
internal void RaisePropertyChanged(string prop)
{
if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); }
}
public event PropertyChangedEventHandler PropertyChanged;
//Extra Stuff, shows why a base ViewModel is useful
bool? _CloseWindowFlag;
public bool? CloseWindowFlag
{
get { return _CloseWindowFlag; }
set
{
_CloseWindowFlag = value;
RaisePropertyChanged("CloseWindowFlag");
}
}
public virtual void CloseWindow(bool? result = true)
{
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
CloseWindowFlag = CloseWindowFlag == null
? true
: !CloseWindowFlag;
}));
}
}
}
INotifyPropertyChanged 的主要职责是让视图知道绑定 属性 正在更改。因此视图将自动更新。
要了解其工作原理,请将文本框的文本 属性 绑定到视图模型中的字符串 属性。单击按钮更改字符串。尝试使用和不使用 INotifyPropertyChanged。如果没有 INotifyPropertyChanged,文本框文本将不会在按钮单击时更改。
INotifyPropertyChanged 也可用于让其他视图模型侦听您当前视图模型的 属性 正在更改。
希望你明白了。
我对编程很陌生。尝试使用本教程了解 MVVM 的基本思想 http://social.technet.microsoft.com/wiki/contents/articles/13536.easy-mvvm-examples-in-extreme-detail.aspx
我从这段代码中删除了接口“:INotifypropertychanged”(删除了那些词)。该程序仍然按预期运行和运行。那么INotifyPropertychanged的作用是什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Windows;
using System.Windows.Threading;
namespace MvvmExample.ViewModel
{
class ViewModelBase : INotifyPropertyChanged
{
//basic ViewModelBase
internal void RaisePropertyChanged(string prop)
{
if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); }
}
public event PropertyChangedEventHandler PropertyChanged;
//Extra Stuff, shows why a base ViewModel is useful
bool? _CloseWindowFlag;
public bool? CloseWindowFlag
{
get { return _CloseWindowFlag; }
set
{
_CloseWindowFlag = value;
RaisePropertyChanged("CloseWindowFlag");
}
}
public virtual void CloseWindow(bool? result = true)
{
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
CloseWindowFlag = CloseWindowFlag == null
? true
: !CloseWindowFlag;
}));
}
}
}
INotifyPropertyChanged 的主要职责是让视图知道绑定 属性 正在更改。因此视图将自动更新。
要了解其工作原理,请将文本框的文本 属性 绑定到视图模型中的字符串 属性。单击按钮更改字符串。尝试使用和不使用 INotifyPropertyChanged。如果没有 INotifyPropertyChanged,文本框文本将不会在按钮单击时更改。
INotifyPropertyChanged 也可用于让其他视图模型侦听您当前视图模型的 属性 正在更改。
希望你明白了。