public void UnRegisterRelationProperty(string origin, NotifyBase target_owner, params string[] target_prop) { if (PropertyRelations.TryGetValue(origin, out var rel)) { rel.RelatedProps.RemoveWhere(x => x.Owner == target_owner && target_prop.Contains(x.PropertyName)); } }
public static NotifyDescriptor[] GetDescriptors(NotifyBase Sender, params string[] props) { var f = new List <NotifyDescriptor>(); foreach (var item in props) { f.Add(new NotifyDescriptor(Sender, item)); } return(f.ToArray()); }
public void RegisterRelationProperty(string origin, NotifyBase target_owner, params string[] target_prop) { if (!PropertyRelations.TryGetValue(origin, out var rel)) { PropertyRelations[origin] = rel = new PropertyRelation(); } foreach (var prop in target_prop) { var desc = new NotifyDescriptor(target_owner, prop); if (!rel.RelatedProps.Contains(desc)) { rel.RelatedProps.Add(desc); } } }
public void RegisterItemRelationProperty(string origin, NotifyBase target_owner, params string[] target_prop) { if (!ItemPropertyRelations.TryGetValue(origin, out var rel)) { ItemPropertyRelations[origin] = rel = new PropertyRelation(); } foreach (var prop in target_prop) { var temp = new NotifyDescriptor(target_owner, prop); if (rel.RelatedProps.Contains(temp)) { continue; } rel.RelatedProps.Add(temp); } }
public NotifyDescriptor(NotifyBase Owner, string Prop) { this.Owner = Owner; PropertyName = Prop; }