TabControl's SelectionChanged event issue

c#, tabcontrol, wpf

Solution

I think I need to take a rest, since my problem is really silly:

Turns out that instead of `TabControl` I should have used `TabItem` since it is the control I am interesting in.

So, my code has to be as below:

 void mainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (e.Source is TabItem)
        {       
            if (this.IsLoaded)
            {
                //do work when tab is changed
            }
        }
    }

Problem

I am working on WPF and I am creating a userControl which contains a TabControl which has some TabItems. I need to execute some stuff when the selected tab changes, so, what I tried to do is to use the event `myTabControl.SelectionChanged` but it was raised many times, even though I only clicked once a TabItem. Then I read this post is-there-selected-tab-changed-event-in-the-standard-wpf-tab-control and put this code inside my method: ``` void mainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.Source is TabControl) { //do work when tab is changed } } ``` After doing that the first problem had been solved, but then when I ran the application and tried to change of tab, an error was raised: ``` Dispatcher processing has been suspended, but messages are still being processed ``` Visual Studio points to the first line of code inside of `if (e.Source is TabControl) { //here }` But I found this article selectionchanged-event-firing-exceptions-for-unknown-reasons and I could solve that problem writing some code as below: ``` void mainTabControl_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (e.Source is TabControl) { if (this.IsLoaded) { //do work when tab is changed } } } ``` But right now I am having another problem which I havent been able to solve: The event is firing twice! And another weird thing is that only the first time I try to change of selected tab the event raises twice but the selected tab is still the same I hope someone can help me, thank you in advance.

Original source

Related problems