public void AddResearchTeams(params ResearchTeam[] newTeams) { foreach (var team in newTeams) { team.PropertyChanged += ControlPropertyChanging; resTeamDict.Add(keySelector.Invoke(team), team); // Do not add right, added only last object ResearchTeamsChanged.Invoke(this, new ResearchTeamsChangedEventArgs <Tkey>(CollectionName, Revision.Add, "AddResearchTeams", team.LicenceNumber)); } }
public bool Remove(ResearchTeam rt) { if (!resTeam.ContainsValue(rt)) { return(false); } else { foreach (var item in resTeam.Where(kpv => kpv.Value.Equals(rt)).ToList()) { resTeam.Remove(item.Key); item.Value.PropertyChanged -= ResearchTeamChangedInto; ResearchTeamsChanged?.Invoke(this, new ResearchTeamsChangedEventArgs <TKey>(CollectionName, Revision.Remove, " ", rt.ReNumber)); } return(true); } }
public bool Replace(ResearchTeam rtold, ResearchTeam rtnew) { if (!resTeam.ContainsValue(rtold)) { return(false); } else { foreach (var item in resTeam.Where(kpv => kpv.Value.Equals(rtold)).ToArray()) { resTeam[item.Key] = rtnew; rtold.PropertyChanged -= ResearchTeamChangedInto; rtnew.PropertyChanged += ResearchTeamChangedInto; ResearchTeamsChanged?.Invoke(this, new ResearchTeamsChangedEventArgs <TKey>(CollectionName, Revision.Replace, " ", rtnew.ReNumber)); } return(true); } }
public bool Remove(ResearchTeam rt) { if (!resTeamDict.Values.Contains(rt)) { return(false); } foreach (var pair in resTeamDict) { if (pair.Value == rt) { pair.Value.PropertyChanged -= ControlPropertyChanging; resTeamDict.Remove(pair.Key); ResearchTeamsChanged.Invoke(this, new ResearchTeamsChangedEventArgs <Tkey>(CollectionName, Revision.Remove, "", rt.LicenceNumber)); break; } } return(true); }
public bool Replace(ResearchTeam rold, ResearchTeam rnew) { if (!resTeamDict.Values.Contains(rold)) { return(false); } Tkey tempKey = default(Tkey); foreach (var pair in resTeamDict) { if (pair.Value == rold) { pair.Value.PropertyChanged -= ControlPropertyChanging; tempKey = pair.Key; rnew.PropertyChanged += ControlPropertyChanging; } } resTeamDict[tempKey] = rnew; ResearchTeamsChanged.Invoke(this, new ResearchTeamsChangedEventArgs <Tkey>(CollectionName, Revision.Replace, "", rold.LicenceNumber)); return(true); }
public void ResearchTeamChangedInto(object sender, PropertyChangedEventArgs e) //обработчик события изменений свойств { int num = resTeam.First(i => i.Value == (ResearchTeam)sender).Value.ReNumber; ResearchTeamsChanged?.Invoke(this, new ResearchTeamsChangedEventArgs <TKey>(CollectionName, Revision.Property, e.PropertyName, num)); }
void ControlPropertyChanging(object source, PropertyChangedEventArgs args) { ResearchTeamsChanged.Invoke(this, new ResearchTeamsChangedEventArgs <Tkey>(CollectionName, Revision.Property, args.PropertyName, (source as ResearchTeam).LicenceNumber)); }