0

I have a datagrid nested within a datagrid. The nested datagrid is only visible when a toggle button is pressed in the original datagrid.

This works fine, however i would like to be able to hide some of the columns in the nested datagrid.

I am using MVVM.

I have tried achieving this by binding the Visibility property of the Column to a visibility property in my view model, i also tried biding the width to an integer property in my viewmodel with no luck.

I have tried achiving this through the code behind, however i cant access the nested datagrid - it doesnt seem to be in the VisualTree at all.

The code i tried is :

  Private Sub DgRowLoading(sender As Object, e As DataGridRowEventArgs) Handles OriginalDataGridName.LoadingRow

     Dim test As DataGrid = OriginalDataGridName.FindName("NestedDataGridName")

End Sub

I have even tried looping through the visual tree of the Original datagrid after the nested datagrid is loaded but the nested datagrid isn't found. The code i used is:

 Private Sub LoopThroughControls(parent As UIElement)
    Dim count As Integer = VisualTreeHelper.GetChildrenCount(parent)
    If count > 0 Then
        For i As Integer = 0 To count - 1
            Dim child As UIElement = DirectCast(VisualTreeHelper.GetChild(parent, i), UIElement)
            Dim childTypeName As String = child.[GetType]().ToString()
            LoopThroughControls(child)
        Next
    End If
End Sub
DNKROZ
  • 2,634
  • 4
  • 25
  • 43

1 Answers1

0

I have achieved similar thing just few days back but I was not having nested data grid. I was working on single data grid and this question helped me to complete my task.

Community
  • 1
  • 1
Naresh Ravlani
  • 1,600
  • 13
  • 28
  • Thanks but the problem is with the nested data grid, i can hide columns easily on a normal data grid. – DNKROZ Apr 22 '14 at 12:13