public void Remove(MeasurementLimit limit) { MeasurementLimits.Remove(limit); MeasurementLimit.AllMeasurementLimits.Remove(limit); SelectedItem = null; }
public void Add() { GetError("BeginHour", "EndHour", "Limit", "City"); if (Errors.Count < 1) { var limit = new MeasurementLimit(BeginHour, EndHour, Limit, City); MeasurementLimit.AllMeasurementLimits.Insert(0, limit); MeasurementLimits.Clear(); foreach (var c in MeasurementLimit.AllMeasurementLimits) { MeasurementLimits.Add(c); } SelectedItem = limit; } else { StringBuilder sb = new StringBuilder(); foreach (var k in Errors.Keys) { sb.Append($"Ошибка в поле {k}: {Errors[k]};"); } Errors.Clear(); MessageBox.Show(sb.ToString()); } }
public void Find() { MeasurementLimits.Clear(); var list = MeasurementLimit.AllMeasurementLimits .Where(m => CityForFind == null || CityForFind.Id == AllCity.Id || m.City.Id == CityForFind.Id).ToList(); foreach (var m in list) { MeasurementLimits.Add(m); } SelectedItem = null; }
/// <summary> /// При изменении коллекции городов, обновляю список для поиска городов /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void AllCitiesOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) { switch (e.Action) { case NotifyCollectionChangedAction.Add: // если добавление CitiesForFind.Insert(1, e.NewItems[0] as City); break; case NotifyCollectionChangedAction.Remove: // если удаление City city = e.OldItems[0] as City; if (city != null) { for (int i = MeasurementLimits.Count() - 1; i >= 0; i--) { if (MeasurementLimits[i].City.Id == city.Id) { MeasurementLimits.Remove(MeasurementLimits[i]); } } for (int i = MeasurementLimit.AllMeasurementLimits.Count() - 1; i >= 0; i--) { if (MeasurementLimit.AllMeasurementLimits[i].City.Id == city.Id) { MeasurementLimit.AllMeasurementLimits.Remove(MeasurementLimit.AllMeasurementLimits[i]); } } if (CitiesForFind.Contains(city)) { CitiesForFind.Remove(city); } } break; case NotifyCollectionChangedAction.Replace: // если замена CitiesForFind.Remove(e.OldItems[0] as City); CitiesForFind.Insert(1, e.NewItems[0] as City); break; } }