Exemplo n.º 1
0
 private void MeaningsChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     switch (e.Action)
     {
     case NotifyCollectionChangedAction.Remove:
     case NotifyCollectionChangedAction.Replace:
     case NotifyCollectionChangedAction.Reset:
         if (_meanings.Count > 0)
         {
             var meanings = new HashSet <Meaning>(_meanings);
             foreach (Variety variety in _varieties)
             {
                 variety.Words.RemoveAll(w => !meanings.Contains(w.Meaning));
             }
             CognacyDecisions.RemoveAll(cd => !meanings.Contains(cd.Meaning));
         }
         else
         {
             foreach (Variety variety in _varieties)
             {
                 variety.Words.Clear();
             }
             CognacyDecisions.Clear();
         }
         break;
     }
 }
Exemplo n.º 2
0
 private void VarietiesChanged(object sender, NotifyCollectionChangedEventArgs e)
 {
     switch (e.Action)
     {
     case NotifyCollectionChangedAction.Remove:
     case NotifyCollectionChangedAction.Replace:
     case NotifyCollectionChangedAction.Reset:
         if (_varieties.Count > 0)
         {
             var varieties = new HashSet <Variety>(_varieties);
             _varietyPairs.RemoveAll(vp => !varieties.Contains(vp.Variety1) || !varieties.Contains(vp.Variety2));
             CognacyDecisions.RemoveAll(cd => !varieties.Contains(cd.Variety1) || !varieties.Contains(cd.Variety2));
         }
         else
         {
             _varietyPairs.Clear();
             CognacyDecisions.Clear();
         }
         break;
     }
 }