Estoy tratando de crear una serie de columnas encuadernadas en un RadGridView, y estoy usando una plantilla para crear hipervínculos en dos de las columnas. Aquí es básicamente lo que tengo:Plantillas WPF y enlace a DataContext en un GridView
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Distributor" DataContext="{Binding Distributor}" CellTemplate="{StaticResource linkTemplate}"/>
y,
<DataTemplate x:Key="linkTemplate">
<TextBlock>
<Hyperlink DataContext={TemplateBinding DataContext} Click="Hyperlink_Click">
<TextBlock Text="{Binding Name}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
El RadGridView sí está unido a un conjunto de objetos DistributorContainer que tienen, entre otras cosas, una propiedad del Distribuidor. El linkTemplate se refiere directamente a las propiedades en el objeto Distribuidor, por lo que el contexto de datos del hipervínculo debe establecerse en el Distribuidor.
Desafortunadamente, el contexto de datos del hipervínculo es el objeto DistributorContainer. Estoy usando linkTemplate (así como el manejador Hyperlink_Click) en las listas que se unen a las listas de Distribuidores, y realmente me gustaría volver a usar esta plantilla ya que básicamente es lo mismo.
¿Por qué la plantilla no obtiene al distribuidor como su DataContext a través de TemplateBinding a GridViewDataColumn?
Esto funciona y proporciona un medio de utilizar un único modelo para cualquier gridview, pero es Hay una forma de vincular solo al DataContext del padre con plantilla? Esto daría a la plantilla mucha más flexibilidad. – Jake
Dado que el DataContext del padre con plantilla (celda en este caso) es el mismo que DataContext de la fila, no puede lograr el resultado deseado de esta manera. –