Я пытался выяснить это некоторое время, и я чувствую, что близок к решению, но мне не хватает некоторой важной информации. Я надеюсь, что кто-то здесь может помочь направить меня в правильном направлении.
Я пишу программу для отслеживания веса и центра тяжести сборки. У меня есть четыре основных класса:
- BasicPart: определяет свойства детали, которые не зависят от местоположения (номер детали, объем, плотность, масса)
- DetailPart: подкласс BasicPart, который также содержит информацию о местоположении (например, местоположение CG)
- StdPartLibrary: имеет только одно свойство (объект List) и несколько методов для таких вещей, как сохранение / загрузка информации о базовой детали в / из файла
- MassModel: имеет только одно свойство (объект List) и несколько методов для таких вещей, как вычисление местоположения CG сборки
Пользовательский интерфейс - это форма WPF с, среди прочего, сеткой данных, показывающей данные StdPartLibrary, и таблицей, основанной на данных MassModel, показывающей общую массу сборки и информацию CG. И я реализовал интерфейс INotifyPropertyChanged в классе BasicPart, чтобы сетка данных автоматически пересчитывала массу, объем и / или плотность, когда пользователь изменяет что-либо в таблице.
Но вот моя проблема:
Я не могу найти способ обновить таблицу для автоматического пересчета общей массы и местоположения компьютерной графики, когда пользователь обновляет данные в сетке данных. Прямо сейчас у меня есть кнопка, которую пользователь должен нажать, чтобы обновить общую массу и информацию о местонахождении компьютерной графики, и он выполняет свою работу. Но сейчас я настаиваю на этом и очень хочу это выяснить.
Из того, что я читал, звучит так, будто мне нужно каким-то образом подписаться на PropertyChangedEventHandler в BasicPart, но я не могу точно понять, как и где я бы это реализовал. Любой совет?
ОТВЕТ
Так что получается, что я идиот. Как отметил Стив Бирн в комментариях, мне просто нужно было запустить мой код, чтобы обновить массовые свойства в событии CurrentCellChanged объекта DataGrid. Спасибо!