WPF Cómo acceder al control desde DataTemplate

Tengo un datatemplate que contiene una grilla y dentro de la grilla tengo un combobox.

           

Entonces tengo una grilla que se refiere a esa plantilla a través del estilo.

    

¿Cómo puedo acceder a través del código detrás del myCombo para configurar básicamente su DataContext?

En primer lugar, no puedo encontrar la relación entre el recurso (ShowAsExpanded) y el uso dentro de ContentPresenter. Pero, por el momento, supongamos que DynamicResource debe apuntar a ShowAsExpanded.

No puedes y no debes acceder al combobox a través del código. Debe vincular el contexto de datos a la cuadrícula que usa el estilo. Si no quiere hacer eso, tendrá que encontrar el contenido en tiempo de ejecución y buscar el combobox hijo.

Tres formas que conozco.

1. Utilizar FindName

 ComboBox myCombo = _contentPresenter.ContentTemplate.FindName("myCombo", _contentPresenter) as ComboBox; 

2.Añadir el evento Loaded al ComboBox y acceder desde allí

  

3. Encontrarlo en el Árbol Visual

 private void SomeMethod() { ComboBox myCombo = GetVisualChild(_contentPresenter); } private T GetVisualChild(DependencyObject parent) where T : Visual { T child = default(T); int numVisuals = VisualTreeHelper.GetChildrenCount(parent); for (int i = 0; i < numVisuals; i++) { Visual v = (Visual)VisualTreeHelper.GetChild(parent, i); child = v as T; if (child == null) { child = GetVisualChild(v); } if (child != null) { break; } } return child; }