TabControl Сохранение на выбранном элементе вкладки изменено - PullRequest
1 голос
/ 12 марта 2012

Мне нужно сохранять данные в отдельном TabItem каждый раз, когда пользователь переключается на другую таблицу.

Я пытаюсь обработать событие TabControl.SelectionChanged, но информация о ранее выбранном элементе вкладки отсутствует.

Итак, как получить момент, когда пользователь переключается с моего TabItem на другой?

Ответы [ 4 ]

3 голосов
/ 21 октября 2012

Используйте события Enter и Leave отдельных вкладок. Если вам нужно, чтобы событие enter запускалось при запуске кода, вам может понадобиться программно изменить выбранную вкладку на другую, отличную от той, что была во время разработки.

1 голос
/ 12 марта 2012

Вы можете создать глобальную переменную для хранения последней вкладки

private TabPage LastTab = null;

private void tabSelectionChanged(...)
{
  if(LastTab != null)
     //Do save

  LastTab = tab.SelectedTabPage;// or equivalent 
}
0 голосов
/ 28 октября 2012

То, что вам нужно, существует в параметре SelectionChangedEventArgs e:

  • e.AddedItems
  • e.RemovedItems
0 голосов
/ 03 июня 2012

Используйте следующий код:

private object LastTab = null;

private void tabSelectionChanged(...)
{
  if(LastTab != null)
  {
     //Do save
  }

  LastTab = control.SelectedContent;
}

Здесь содержимое будет иметь тип объекта, который вы можете набрать приведением к определенному классу и выполнить операцию сохранения

...