Получить 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.