У меня очень странная проблема: в WPF у меня есть tabControl, который содержит 3 tabItems. Я сделал привязку из SelectedIndex tabControl к свойству внутри моего класса viewModel в режиме «OneWayToSource».
Вот код 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>
И на мой взглядМодель:
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
моей viewModel, выполняется метод SelectedTabChanged()
, и это работает отлично.
Моя странная проблема заключается в следующем: Когда я показываю сообщение, используя, например, System.Windows.MessageBox.Show("Some Text")
внутри моего метода SelectedTabChanged()
, я выбираю другую вкладку, и предыдущая выбранная вкладка блокируется, она выглядит как выбранная, но остается выбранной постоянно, я не могу видеть ее контента больше.
Просто поясню: как я уже говорил, эта странная проблема возникает только при отображении модального окна
Почему происходит? Как я могу решить эту проблему?
Надеюсь, я ясно объяснил.
Заранее спасибо.