Позвольте мне показать некоторый псевдокод.
<TabControl x:Name="tabCtrlMain" Style="{StaticResource MasterTabControl}">
<TabItem x:Name="Tab1" Header="Tab1">
<view:UserControl1/>
</TabItem>
<TabItem x:Name="Tab2" Header="Tab2">
<view:UserControl2/>
</TabItem>
</TabControl>
Тогда, скажем, у меня есть UserControl1
<DockPanel x:Name="dpFullTab" Margin="5" LastChildFill="True">
<DockPanel x:Name="dbFieldsPanel" DockPanel.Dock="Top">
<StackPanel x:Name="stackPanelFields" DockPanel.Dock="Top" Orientation="Vertical">
<templates:TemplatesUserControl"/>
<templates:SomeControl x:Name="templateCounterparties"/>
<templates:ProblematicControl ComboBoxEnabled ="True"/>
</StackPanel>
</DockPanel>
UserControl2:
<DockPanel x:Name="dpFullTab" Margin="5" LastChildFill="True">
<DockPanel x:Name="dbFieldsPanel" DockPanel.Dock="Top">
<StackPanel x:Name="stackPanelFields" DockPanel.Dock="Top" Orientation="Vertical">
<templates:TemplatesUserControl"/>
<templates:DifferentControl x:Name="templateCounterparties"/>
<templates:ProblematicControl ComboBoxEnabled ="False"/>
</StackPanel>
</DockPanel>
ProblematicUserControl
имеет некоторыесписки, которые я хочу отключить в зависимости от того, какая вкладка настроена.
Я создал в коде ProblematicUserControl
свойство под названием ComboBoxEnabled
, которое затем использую для отправки сообщения через легкий мессенджер MVVM в свойство, которое я установил с помощью Set()
, которое является функциейЛегкая структура MVVM, которая реализует INotify
в ProblematicControl
ViewModel.
Затем я связал его со свойством IsEnabled
поля со списком в ProblematicUserControl
XAML.
Дело в том, что поскольку viewModel одинакова, преобладает только вторая вкладка, и тамнет двух отдельных ViewModels.Так что это означает, что отключены в обоих, что не то, что я хочу.Я хочу отключить только вторую вкладку.Кроме того, в UserControl2 есть кнопка, которая открывает модал с ProblematicControl
с ProblematicControl ComboBoxEnabled = true
и , работает , но когда я закрываю окно, все комбинированные списки на вкладках, которые были отключены, теперь становятся включенными.Таким образом, модальное окно изменило ViewModel.
Я что-то упустил?