Я использовал Dev Express control TreeListView на моей странице XAML для отображения списка элементов на экране. С каждым из этих элементов может быть связано изображение, которое отображается простым тегом <Image>
. Когда я пытаюсь автоматизировать эту страницу с помощью CodedUI, я вообще не могу идентифицировать изображение. Ниже приведен код, используемый в XAML для визуализации элементов управления.
Шаблон данных
<StackPanel Orientation="Horizontal" >
<!--Fill="Red"-->
<Image Style="{DynamicResource ImgWarningProcessingMethod}" Visibility="{Binding RowData.Row.HasError, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}"
Width="8" Height="8" AutomationProperties.AutomationId="ErrorIndicator-Image"
HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="0,0,0,6" />
<TextBlock Text="{Binding RowData.Row.ItemName}"
HorizontalAlignment="Left" VerticalAlignment="Top" Margin="4,0,0,0"
AutomationProperties.AutomationId="TreeTextBlocke"
/>
</StackPanel>
</DataTemplate>
Элемент управления TreeView с использованием этого шаблона
<dxg:TreeListView x:Name="ProcessingMethodNavigationTreeView"
VerticalScrollbarVisibility="Auto"
RowIndent="10"
ShowFixedTotalSummary="False"
ShowHorizontalLines="False"
ShowColumnHeaders="False"
ShowVerticalLines="False"
ShowIndicator="False"
AutoExpandAllNodes="True"
ShowSearchPanelMode="Never"
PrintNodeImages="True"
AllowEditing="False"
PrintSelectedRowsOnly="True"
NavigationStyle="Row"
AutoWidth="True"
MinWidth="120"
CellTemplate="{StaticResource DefaultDataTemplate}"
RowStyle="{DynamicResource ChannelRowControlStyleTemp}"
MaxWidth="160">
</dxg:TreeListView>
Код CodedUI для получения этого изображения
custom.SearchProperties.Add("ClassName", "Uia.ProcessingMethodMainWindow");
WpfTree tree = new WpfTree(custom);
tree.SearchProperties.Add("AutomationId", "ProcessingMethod-Navigation-DevExpressTree");
tree.DrawHighlight();
WpfPane pane = new WpfPane(tree);
pane.SearchProperties.Add("AutomationId", "dataPresenter");
pane.DrawHighlight();
WpfControl treeItem = new WpfControl(pane);
treeItem.SearchProperties.Add("Instance", "2");
treeItem.SearchProperties.Add("Name", "PerkinElmer.Analysis.Ui.ProcessingMethodUserControl.ViewModel.ProcessingMethodTreeViewItem");
treeItem.DrawHighlight();
int countChildren = treeItem.GetChildren().Count;
countChildren возвращает 0 значений
Является ли этот подход правильным? Любой другой способ найти контроль изображения? Пожалуйста, предложите.
Спасибо