/// <summary> /// 设置变更的属性 /// </summary> /// <param name="propertyName"></param> public void SetChangeProperty(string propertyName) { IItemChangeEvent val = null; try { val = GetAccessor()[propertyName] as IItemChangeEvent; } catch (Exception ex) { try { val = this[propertyName] as IItemChangeEvent; } catch { throw new Exception("Get property:" + GetType().Name + "." + propertyName, ex); } } if (val != null) { val.PropertyName = propertyName; if (IsReadOnly) { val.DisableChildNotify(); } AddChildrenListener(val); } Notify(this, CacheItemChangeType.Modify, propertyName); }
/// <summary> /// 绑定事件且通知 /// </summary> /// <param name="obj"></param> /// <param name="propertyName"></param> protected void BindAndChangeProperty(object obj, string propertyName) { IItemChangeEvent val = obj as IItemChangeEvent; if (val != null) { val.PropertyName = propertyName; if (IsReadOnly) { val.DisableChildNotify(); } AddChildrenListener(val); } Notify(this, CacheItemChangeType.Modify, propertyName); }