У меня есть приложение WPF, которое в основном следует MVVM, которое я пытаюсь автоматизировать.
В некоторых моих пользовательских элементах управления я связываю свойство Content с ViewModel другого пользовательского элемента управления.Определен шаблон данных, который отображает ViewModel в правильное представление для отображения на экране.
Это прекрасно работает, когда приложение запускается пользователем, но если я пытаюсь просмотреть дерево автоматизации в UISpy или другом инструменте, оно всегда останавливается на ViewModel.эта проблема в многочисленных местах.Есть ли способ сказать ViewModel выставить какие-либо свойства автоматизации под ним в дереве?или я неправильно определяю шаблон данных?
Заранее спасибо, Донал
РЕДАКТИРОВАТЬ: Вот пример XAML, взятый из приложения.Это блокирует доступ к дереву автоматизации.Он находится внутри окна RibbonWindow.
<TabControl Grid.Column="2"
cal:RegionManager.RegionName="{x:Static Regions:RegionNames.MainRegion}"
Name="tabControlMain"
SelectedValuePath="Name">
<TabControl.Template>
<ControlTemplate TargetType="TabControl">
<Grid>
<TabPanel IsItemsHost="True" Visibility="Hidden" />
<Border BorderBrush="{DynamicResource BorderBrush}" Background="White" BorderThickness="1">
<framework:CachingContentPresenter
ItemsSource="{Binding Items, ElementName=tabControlMain}"
ContentTemplateSelector="{framework:MvvmTemplateSelector}"
ContentSource="SelectedContent" />
</Border>
</Grid>
</ControlTemplate>
</TabControl.Template>
Ниже приведена предыдущая версия вышеуказанного XAML.Он разрешал доступ к дереву автоматизации:
<TabControl
Grid.Column="2"
Padding="0"
cal:RegionManager.RegionName="{x:Static Regions:RegionNames.MainRegion}"
Name="tabControlMain"
TabStripPlacement="Bottom"
SelectedValuePath="Name"
ItemContainerStyle="{StaticResource TabItemStyle}">
</TabControl>
Где TabItemStyle:
<Style TargetType="{x:Type TabItem}" x:Key="TabItemStyle">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="TabItem">
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>