我需要能够根据签入系统的资产在模板生成的某些控件上设置AutomationId。
我已经验证了封装模板化控件的所有自定义控件都处理AutomationId属性。
我试过以下但没有运气:
<DataTemplate DataType="assets:IAssetVM">
<Border Background="Transparent" x:Name="ItemContent" MouseLeftButtonUp="ItemContent_OnMouseLeftButtonUp">
<Border.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding FollowAssetButtonCommand}" />
</Border.InputBindings>
<Grid Height="30">
<AutomationProperties.AutomationId>
<MultiBinding StringFormat="AID_{0}-{1}">
<Binding Path="Name" />
<Binding Path="NumericID" />
</MultiBinding>
</AutomationProperties.AutomationId>
...
</Grid>
</Border>
</DataTemplate>
更新
回顾应用程序运行时的逻辑树,我意识到我能够通过自动化属性赋值获得的最后一个级别包含几个不同的GroupItem类(系统中资产的不同命令模式)
所以结构如下:
-> List View "" "Test_AssetListView"
|-> Group Item "Mode 1" ""
|-> List Item "Vm.Assets.AssetVM2" ""
|-> Group Item "Mode 2" ""
我认为我不应该为Group控件覆盖OnCreateAutomationPeer()方法(我很确定)它是一种基本(?)类型的控件。
有什么想法吗?
提前感谢您的帮助!