Как получить значение в одной сетке данных, которое будет изменено при изменении ячейки в другой?
У меня есть два примера этого
DataGrid
на том же экране в отношениях мастер-деталь.Мастер
DataGrid
показывает разделы в смете и детали DataGrid
показывает отдельные статьи затрат в разделе. У мастера есть столбец, который показывает промежуточный итог для раздела.Когда я редактирую значение номенклатуры затрат в деталях
DataGrid
, Я, очевидно, хочу, чтобы столбец промежуточного итога на мастере DataGrid
чтобы отразить это, но я не могу понять, как заставить его сделать это.В другом месте экрана у меня есть общая сумма для всех промежуточных итогов во всех разделах (т. е. общая сумма), и она немедленно обновляется, чего я и ожидал бы, потому что любые изменения в слое модели заставляют обработчик событий в view-model выполнять следующий вызов с пустой строкой в качестве параметра:
protected void OnPropertyChanged( [CallerMemberName] string propertyName = "" ) { PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
Насколько я понимаю, увольнение
PropertyChanged
событие с пустым именем свойства указывает механизму привязки обновить все привязки, и действительно, до сих пор это всегда имело место в приложении.Как я могу получить значение в ячейке мастера
DataGrid
признать, что ценность, к которой он привязан, изменилась? Есть ли признанный способ сделать это?Что я уже пробовал:
Я много искал ответа на этот вопрос, но ни один из них, похоже, не касается точного сценария, который я описал выше. Я удивлен, потому что это не кажется мне необычным требованием.
Я также думал о взломе чего - то вместе с помощью обработчиков событий на уровне пользовательского интерфейса, но это именно то, что я чувствую- взлом. Должен же быть более элегантный способ?