Получить DataItem в DataTemplate

Есть ли способ получить фактический DataItem из DataTemplate. В частности, у меня есть пользовательская кнопка, которую я использую в табличке данных:

<DataTemplate x:Key="SampleDataTemplate1">
    <custom:SampleButton />
</DataTemplate>

Я использую это в виде списка для привязки к коллекции. Я хотел бы передать ссылку на фактический DataItem, который привязан. Что-то вроде этого:

<DataTemplate x:Key="SampleDataTemplate1">
    <custom:SampleButton BoundItem="{Binding DataItem}" />
</DataTemplate>

Это возможно? Как это можно сделать?

1 ответ

Решение

Вы можете привязать данные, используемые в шаблоне данных. Вот пример:

<DataTemplate x:Key="SampleDataTemplate1">
     <custom:SampleButton BoundItem="{Binding}" />
</DataTemplate> 

Подробнее здесь (см. Раздел "Указание пути к значению"):

http://msdn.microsoft.com/en-us/library/ms752347.aspx

Идея состоит в том, что внутри шаблона данных все элементы в их DataContext ссылаются на элемент, к которому привязан шаблон данных. И конструкция {Binding} без Path просто привязывается к DataContext.

Другие вопросы по тегам