2009-05-25 8 views
0

У меня есть две таблички. Пользователь вводит некоторые данные и сохраняет их на первой вкладке. На второй вкладке отображаются сохраненные данные. Мне нужно, когда пользователь выбирает вторую вкладку перед сохранением данных на первой вкладке, должно отображаться окно с сообщением «Да», «Нет» и «Отмена». Если пользователь нажимает кнопку «Да», данные должны быть сохранены и перейти ко второй вкладке. Если он нажимает «Нет», данные не нужно сохранять, и, наконец, если «Отмена» ударит, вкладка сохранит все введенные данные. Как я могу это сделать?Подтверждение при переключении между вкладками

ответ

0

Чтобы все было в порядке, вы можете сделать следующее в файле «Код за файлом».

Я бы создал класс модели данных, которые вы хотите отображать и редактировать в элементе управления WPF. Сделайте модель реализацией интерфейсов INotifyPropertyChanged и IEditableObject.

INotifyPropertyChanged позволит вам привязать к модели. IEditableObject позволит вам редактировать функции редактирования, сохранения и отмены.

TabControl имеет SelectionChanged событие вы можете справиться, что позволит вам определить, когда пользователь изменяет вкладки, в обработчике вы можете использовать System.Windows.MessageBox попросить пользователя, чтобы сохранить и т.д., System.Windows.MessageBox.Show() возвращает MessageBoxResult объект можно использовать для detirmine, какую кнопку пользователь нажал и выполнил соответствующее действие.

Это не то, что нужно делать, но это все упрощает. Возможно, вы захотите изучить некоторые шаблоны проектирования WPF, чтобы помочь с управляемостью кода.

Если вам что-то объяснено, просто спросите.

0

В TPageControl от Delphi есть событие OnChanging с параметром AllowChange. Я думаю, в WPF есть что-то подобное.

1

Хотя я не согласен с тем, как прервать поток пользователя из вкладки на вкладку Я собираюсь ублажать вас, и ответить на вопрос:

Вам понадобятся две вещи, чтобы получить это сделано:

  1. события, которое происходит, когда закладка была нажата
  2. предыдущей вкладка, которая была выбрана (тот, который вы пришли из)

первого я ТЭМ:

управления Вкладка имеет метод Click, что вы можете подписаться на:

Click=”MyTabButton_Click” 

Второй пункт:

Эта часть вам придется делать вручную. Вы можете установить переменную в событии клика, в котором содержится последняя вкладка. После этого вы можете проверить переменную (которую вы ранее установили) относительно того, какая вкладка была выбрана ранее. Затем вы можете выполнить всю свою проверку.

Смежные вопросы