/// <summary>
/// 当类修改时发生
/// </summary>
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// 引发PropertyChanged事件
/// </summary>
/// <param name="propertyName"></param>
protected virtual void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
} /// 当保存后发生
/// </summary>
public static event EventHandler<SavedEventArgs> Saved;
/// <summary>
/// 引发Saved事件
/// </summary>
/// <param name="bussinessObject"></param>
/// <param name="action"></param>
protected static void OnSaved(BusinessBase<Type, Key> bussinessObject, SaveAction action)
{
if (Saved != null)
{
Saved(bussinessObject, new SavedEventArgs(action));
}
}
我知道上面的代码是一个事件,是BlogEngine.NET 1.5 中BusinessBase.cs基类,我就是不明白,这个事件为什么要这么写,以及,怎么使用这么个事件,我对事件和委托一知半解,请大虾们,说的详细一点,最好能把上面的代码讲解一下
PropertyChanged +=自己的PropertyChanged
Saved+=自己的Saved不知道还怎么解释
if (PropertyChanged != null)//如果事件已经被监听
{
//触发事件,传递参数(即属性名称)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}使用事件:
//声明BusinessBase对象
BusinessBase businessbase = new BusinessBase();
//监听BusinessBase的PropertyChanged,指定当事件发生时由businessbase_PropertyChanged方法处理
businessbase.PropertyChanged += new PropertyChangedEventHandler(businessbase_PropertyChanged);//在BusinessBase类中OnPropertyChanged方法会触发PropertyChanged事件,
//由于该事件已经被businessbase对象监听,所有事件发生后会跳入
//businessbase_PropertyChanged方法进行处理
private void businessbase_PropertyChanged(Object sender,PropertyChangedEventArgs e)
{
}
双向绑定是什么意思啊?
1、控件上改变数据=>控件绑定的数据源也跟着改变;
2、控件绑定的数据源的数据改变=>控件上立即反映出来。
要想支持效果2,那控件绑定的实体类,或实体类集合中的单个类必须实现IPropertyChanged接口。
这是一种约定。到了WPF/Silverlight 2 & 3,它被一种更牛叉的DependencyProperty取代了,应该说。