Я пытаюсь создать ряд связанных столбцов в RadGridView, и я использую шаблон для создания гиперссылок в двух столбцах. Вот в основном то, что у меня есть:WPF Шаблоны и привязка к DataContext в GridView
<telerik:GridViewDataColumn IsReadOnly="True" UniqueName="Distributor" DataContext="{Binding Distributor}" CellTemplate="{StaticResource linkTemplate}"/>
и
<DataTemplate x:Key="linkTemplate">
<TextBlock>
<Hyperlink DataContext={TemplateBinding DataContext} Click="Hyperlink_Click">
<TextBlock Text="{Binding Name}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
Сам RadGridView связан с набором объектов DistributorContainer, которые, помимо всего прочего, свойство Дистрибьюторов. Ссылка linkTemplate ссылается непосредственно на свойства объекта Distributor, поэтому для этого необходимо установить дистрибутив гиперссылки datacontext.
К сожалению, контекст данных гиперссылки является объектом DistributorContainer. Я использую linkTemplate (а также обработчик Hyperlink_Click) в списках, которые привязываются к спискам Distributors, и я действительно хотел бы повторно использовать этот шаблон, поскольку это в основном то же самое.
Почему шаблон не получает Дистрибьютора в качестве своего DataContext через TemplateBinding для GridViewDataColumn?
Это делает работу и обеспечивает средства с использованием единого шаблона для любого GridView, но есть способ просто привязать к DataContext шаблонного родителя? Это придаст шаблону большую гибкость. – Jake
Поскольку DataContext шаблона родителя (ячейки в этом случае) совпадает с DataContext строки, вы не можете достичь желаемого результата таким образом. –