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