Я работаю над WPF, и я создаю userControl, который содержит TabControl с несколькими TabItems.Вывод события SelectionChanged TabControl
Мне нужно выполнить некоторые действия, когда выбранная вкладка изменится, поэтому я попытался использовать событие myTabControl.SelectionChanged
, но он был поднят много раз, хотя я только что нажал TabItem. Потом я прочитал этот пост is-there-selected-tab-changed-event-in-the-standard-wpf-tab-control и поместить этот код в моем методе:
void mainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
//do work when tab is changed
}
}
После этого, что первая проблема была решена, но потом, когда я запустил приложение и попытался изменить вкладки, была сгенерирована ошибка:
Dispatcher processing has been suspended, but messages are still being processed
Визуальные точки Студийные к первой строке кода внутри if (e.Source is TabControl) { //here }
Но я нашел эту статью selectionchanged-event-firing-exceptions-for-unknown-reasons и я мог бы решить эту проблему писать код, как показано ниже:
void mainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.Source is TabControl)
{
if (this.IsLoaded)
{
//do work when tab is changed
}
}
}
Но сейчас я с другой проблемой, которую я гавань была в состоянии решить:
Событие дважды стреляет! И еще одна странность в том, что только в первый раз, когда я пытаюсь изменить выбранную вкладку, событие увеличивается дважды, но выбранная вкладка остается неизменной.
Я надеюсь, что кто-то может мне помочь, спасибо заранее.
Я должен был использовать TabControl, но помогло спасибо – Brent
так я Брент, сохраняемые my_Ass, спасибо – TripleAntigen