Предполагая, что <TextBox Text="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
является опечаткой, и вы имеете в виду Binding Name
, и подробно остановитесь на моем комментарии выше:
Если вы хотите уведомить сетку данных (то есть текстовое поле ячейки) об измененииДля Name
элемента в вашей коллекции вы должны внедрить INotifyPropertyChanged
(если вы не внесете изменения для всей коллекции, что не понравится вашим пользователям, потому что это будет - по крайней мере -сбросить прокрутку).
Если вы хотите уведомить остальную часть своего приложения, когда ваш пользователь изменяет Name
элемента, нажав на его ячейку и набрав что-то, вы совершенно свободны в выборе сообщениймеханизм.Конечно, модификация BaseClass.Name
предпочтительнее с такими опциями, как
INotifyPropertyChanged
(может использоваться сервисами, но не ограничивается пользовательским интерфейсом) - классический .netсобытие, например,
event Action<object,NameChangedEventArgs
NameChanged` IEventAggregator
, например, _eventAggregator.GetEvent<NameChangedEvent>().Publish( new NameChangedEventArgs( this, newName, oldName ) )
Если вы абсолютно не можете изменить BaseClass
, вы можете создать наблюдателя, который будет сидеть ипериодически проверяет все известные ему элементы и сравнивает их текущие имена с последним известным состоянием, а затем выполняет одно из указанных выше действий в случае обнаружения изменений.Однако это не самое эффективное решение, потому что вы должны зарегистрировать все свои элементы и либо отменить их регистрацию, либо использовать слабые ссылки (которые увеличивают накладные расходы).