I'm trying to write some test scenarios for the XamDataGrid. In these scenarios I'd like to set the grouping on a single Field. This code causes the grid to group as expected when I run the app and double-click the grid:
Private Sub MyGrid_MouseDoubleClick(sender As Object, e As MouseButtonEventArgs) Handles MyGrid.MouseDoubleClick Dim xamDataGrid As XamDataGrid = CType(sender, XamDataGrid) Dim field As Field = xamDataGrid.FieldLayouts(0).Fields("A") Dim fieldSortDescription As New FieldSortDescription With {.Field = field, .Direction = ListSortDirection.Ascending, .IsGroupBy = True} xamDataGrid.FieldLayouts(0).SortedFields.Add(fieldSortDescription) End Sub
In tests, after running something very similar the Records and ViewableRecords collections do not reflect the grouping. xamDataGrid.ViewableRecords(0)
is a DataRecord and not a GroupByRecord. Here's the code from the test:
<TestMethod()> Public Sub Test() Dim xamDataGrid As New XamDataGrid xamDataGrid.DataSource = dataSource.DefaultView xamDataGrid.BeginInit() xamDataGrid.EndInit() Dim field As Field = xamDataGrid.FieldLayouts(0).Fields("A") Dim fieldSortDescription As New FieldSortDescription With {.Field = field, .Direction = ListSortDirection.Ascending, .IsGroupBy = True} xamDataGrid.FieldLayouts(0).SortedFields.Add(fieldSortDescription) ' exception thrown here because xamDataGrid.ViewableRecords(0) is a DataRecord Dim groupByRecord As GroupByRecord = CType(xamDataGrid.ViewableRecords(0), GroupByRecord) ' ... End Sub
How can the grid be refreshed or otherwise forced to reflect the grouping set by the code?
Thanks for your time.
Aucun commentaire:
Enregistrer un commentaire