非常に奇妙な問題が発生しています。WPF には、3 つの tabItems を含む tabControl があります。「OneWayToSource」モードで、tabControl の SelectedIndex からビューモデル クラス内のプロパティへのバインディングを作成しました。
XAML コードは次のとおりです。
<TabControl Name="mainTabControl" SelectedIndex="{Binding SelectedTabIndex, Mode=OneWayToSource}"  >
        <TabItem Header="Tab 01" Name="tab01"> ... </TabItem>
        <TabItem Header="Tab 02" Name="tab02"> ... </TabItem>
        <TabItem Header="Tab 03" Name="tab03"> ... </TabItem>
</TabControl>
そして私のviewModelでは:
    private int m_selectedTabIndex;
    public int SelectedTabIndex
    {
        get
        { return m_selectedTabIndex; }
        set
        {
            SetAndNotify(ref m_selectedTabIndex, value, () => SelectedTabIndex);
            SelectedTabChanged();
        }
    }
private void SelectedTabChanged()
    {
        // Some code
    }
ご覧のとおり、ビューモデルのSelectedTabIndexプロパティが変更されるたびにSelectedTabChanged()メソッドが実行され、これは完全に機能します。
私の奇妙な問題は、たとえばメソッドSystem.Windows.MessageBox.Show("Some Text")内でメッセージを表示するSelectedTabChanged()と、別の tabItem を選択すると、以前に選択したタブがブロックされ、選択されているように見えますが、永続的に選択されたままになり、そのコンテンツが表示されなくなります。
明確にするために:前に述べたように、この奇妙な問題はモーダルウィンドウが表示されている場合にのみ発生します
なぜ起こっているのですか?この問題を解決するにはどうすればよいですか?
私は自分自身を明確に説明したことを願っています。
前もって感謝します。