2014-12-08 3 views
0

Как я могу получить доступ к «grid_my» в шаблоне данных «hub_my»?Acess Gridview на datatemplate Hubsection

<HubSection x:Name="hub_my" DataContext="{Binding my}"> 
      <DataTemplate> 
       <GridView 
        x:Name="grid_my" 
        ItemsSource="{Binding Items}" 
        SelectionMode="Multiple" 
        SelectionChanged="grid_SelectionChanged" 
        Loaded="grid_Loaded"> 
       </GridView> 
      </DataTemplate> 
     </HubSection> 

ответ

1

Попробуйте это:

private DependencyObject FindChildControl<T>(DependencyObject control, string ctrlName) 
{ 
    int childNumber = VisualTreeHelper.GetChildrenCount(control); 
    for (int i = 0; i < childNumber; i++) 
    { 
     DependencyObject child = VisualTreeHelper.GetChild(control, i); 
     FrameworkElement fe = child as FrameworkElement; 
     // Not a framework element or is null 
     if (fe == null) return null; 

     if (child is T && fe.Name == ctrlName) 
     { 
      // Found the control so return 
      return child; 
     } 
     else 
     { 
      // Not found it - search children 
      DependencyObject nextLevel = FindChildControl<T>(child, ctrlName); 
      if (nextLevel != null) 
       return nextLevel; 
     } 
    } 
    return null; 
} 

И тогда вы можете получить GridView как это:

GridView myGrid = FindChildControl<GridView>(hub_my, "grid_my") as GridView;