Мне надо как то поймать тот момент когда вкладка TabControl-а становится активной. (TabItem.IsSelected) И обычного бинда тут будет мало. Мне нужен именно момент когда пользователь открыл вкладку. Я пишу чат и это будет как бы когда были сообщения не прочитанные, а стали прочитанные. Так вот как лучше отловить то? Единственное что приходит в голову это прибиндиться во ViewModel-и к IsSelected и в параллельном потоке сделать бесконечный цикл, который будет проверять это свойство и при изменении выполнять необходимые действия. (ну или просто вызывать функцию обработчик) Пойдет такой вариант или есть мысли лучше?
Для "своей" вкладки переписать: protected override void OnVisibleChanged(EventArgs e), и отметить если видима: if (this.Visble)... - или сделать тоже самое для события VisibleChanged, если вы не создали для вкладки свой класс.
у TabControl есть событие SelectionChanged
Если этого не достаточно , и нужно проверять изменения фокуса, тогда нужно еще и фокус ловить.
Сергей Ронин выше всё написал.