As part of work I’m doing at the moment, building a UI automation API for our testers. I continually come across issues around data grid controls and access the rows within it (we’re primarily using XamDataGrids from Infragistics).
What I need is to have an AutomationId reflecting some form of index in the grid. Good news is we can do this…
If we take a XamaDataGrid and create a style such as this
<Style x:Key="RowPresenterStyle" TargetType="igDP:DataRecordPresenter"> <Setter Property="AutomationProperties.AutomationId" Value="{Binding DataItemIndex}" /> </Style>
and now in the XamDataGrid’s FieldLayoutSettings we can apply this style using
<igDP:XamaDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings <!-- Other settings --> DataRecordPresenterStyle="{StaticResource RowPresenterStyle}" /> </igDP:XamaDataGrid.FieldLayoutSettings>