Событие изменения выбора WPF для всех элементов в окне?

#c# #wpf #user-interface

#c# #wpf #пользовательский интерфейс

Вопрос:

У меня есть окно со многими элементами в нем, есть ли событие Window или Grid, чтобы сообщить, изменил ли пользователь какое-либо текстовое поле, поле со списком, radiobutton, checkbutton и т.д.? Я не хочу просматривать каждый элемент и добавлять событие изменения выбора, поскольку это просто для того, чтобы узнать, изменилось ли что-либо с момента последнего сохранения данных.

Ответ №1:

Я думаю, вам следует реализовать интерфейс INotifyPropertyChanged, который уведомляет вас об изменении любого свойства.

Вот пример, который описывает «Лучше привязывать с помощью INotifyProperty». Этот пример предназначен для приложения Windows, но, надеюсь, он даст вам представление.

Выполнение вашей работы таким образом намного элегантнее, чем добавление событий для каждого элемента управления.

Комментарии:

1. это не совсем то, что я искал, моя ситуация такова, что если пользователь нажимает quit, когда информация, которую он ввел в формы, не сохраняется, тогда он будет уведомлен, что информация не сохранена. У меня есть эквивалент bIsSaved = false, вначале, при сохранении bIsSaved = true, как только какой-либо элемент изменен, есть ли способ вернуть его к bIsSaved = false, не записывая его в измененный выбор (или ваш опубликованный способ) каждого отдельного элемента.

2. Я обнаружил, что могу выбрать несколько элементов для одних и тех же событий, это вроде как работает, но у меня должны быть разные события для разных элементов, так что все еще не так гладко, как хотелось бы