在DataTemplate中获取DataItem

时间:2012-07-23 13:59:09

标签: wpf xaml binding datatemplate dataitem

有没有办法获取DataTemplate的实际DataItem。更具体地说,我有一个自定义按钮,我在datatemplate中使用:

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

我在listview中使用它来绑定到一个集合。我想传递一个对绑定的实际DataItem的引用。像这样:

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

这可能吗?如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

您可以绑定到数据模板中使用的数据。这是一个例子:

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

此处有更多详细信息(请参阅指定值的路径部分):

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

我们的想法是,在数据模板中,DataContext中的所有元素都引用数据模板绑定到的项目。而没有Path的{Binding}构造只是绑定到DataContext。