У меня есть две таблички. Пользователь вводит некоторые данные и сохраняет их на первой вкладке. На второй вкладке отображаются сохраненные данные. Мне нужно, когда пользователь выбирает вторую вкладку перед сохранением данных на первой вкладке, должно отображаться окно с сообщением «Да», «Нет» и «Отмена». Если пользователь нажимает кнопку «Да», данные должны быть сохранены и перейти ко второй вкладке. Если он нажимает «Нет», данные не нужно сохранять, и, наконец, если «Отмена» ударит, вкладка сохранит все введенные данные. Как я могу это сделать?Подтверждение при переключении между вкладками
ответ
Чтобы все было в порядке, вы можете сделать следующее в файле «Код за файлом».
Я бы создал класс модели данных, которые вы хотите отображать и редактировать в элементе управления WPF. Сделайте модель реализацией интерфейсов INotifyPropertyChanged
и IEditableObject
.
INotifyPropertyChanged
позволит вам привязать к модели. IEditableObject
позволит вам редактировать функции редактирования, сохранения и отмены.
TabControl имеет SelectionChanged
событие вы можете справиться, что позволит вам определить, когда пользователь изменяет вкладки, в обработчике вы можете использовать System.Windows.MessageBox
попросить пользователя, чтобы сохранить и т.д., System.Windows.MessageBox.Show()
возвращает MessageBoxResult
объект можно использовать для detirmine, какую кнопку пользователь нажал и выполнил соответствующее действие.
Это не то, что нужно делать, но это все упрощает. Возможно, вы захотите изучить некоторые шаблоны проектирования WPF, чтобы помочь с управляемостью кода.
Если вам что-то объяснено, просто спросите.
В TPageControl от Delphi есть событие OnChanging с параметром AllowChange. Я думаю, в WPF есть что-то подобное.
Хотя я не согласен с тем, как прервать поток пользователя из вкладки на вкладку Я собираюсь ублажать вас, и ответить на вопрос:
Вам понадобятся две вещи, чтобы получить это сделано:
- события, которое происходит, когда закладка была нажата
- предыдущей вкладка, которая была выбрана (тот, который вы пришли из)
первого я ТЭМ:
управления Вкладка имеет метод Click, что вы можете подписаться на:
Click=”MyTabButton_Click”
Второй пункт:
Эта часть вам придется делать вручную. Вы можете установить переменную в событии клика, в котором содержится последняя вкладка. После этого вы можете проверить переменную (которую вы ранее установили) относительно того, какая вкладка была выбрана ранее. Затем вы можете выполнить всю свою проверку.