У меня есть приложение WPF с экраном, содержащим элемент управления вкладками с двумя вкладками.На каждой вкладке находится сетка данных, каждая из которых связана с ObservableCollection объектов Part.У детали есть несколько «количественных» свойств, которые необходимо синхронизировать между сетками.Например, если пользователь изменяет количество partABC на grid1, partABC либо необходимо добавить в grid2 с таким же количеством, либо, если grid2 уже содержит partABC, его количество необходимо изменить, чтобы отразить grid1.
Моя проблема в том, что это должно работать в обоих направлениях.Если я установлю обработчик PropertyChanged для каждой части в обеих сетках, я получу бесконечный цикл, поскольку они постоянно обновляют количества друг друга.До сих пор я занимался этим во время события изменения выбора элемента управления вкладками, просто перебирая один из списков и устанавливая количества по одному.Это работало достаточно хорошо, пока я не понял, что пользователи могут потенциально добавлять тысячи деталей в свои списки, и на этом этапе этот процесс занимает недопустимое количество времени (около 25 секунд для 4500 объектов деталей).
edit
Первая сетка содержит каждую часть в базе данных, которая служит своего рода «списком выбора», где пользователи просто прокручивают до нужной части и вводят количества.Вторая сетка содержит только те детали, которые были введены пользователем вручную, если они предпочитают вводить номера нужных деталей.Grid2 всегда является подмножеством grid1.