ListView中的WPF按钮,如何判断单击了哪个按钮

时间:2011-07-20 11:33:18

标签: wpf-controls

WPF 3.5
我有一个ListView,XAML看起来像这样

<ListView Name="ListView_FileAttachments">
<ListView.View>
    <GridView>
                    <GridView.Columns>
                        <GridViewColumn Header="Type"></GridViewColumn>
                        <GridViewColumn Header="File Name"></GridViewColumn>                            
                        <GridViewColumn Header="Security">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <Button Content="Set Restrictions" Click="Restrictions_Clicked"></Button>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>

                        </GridViewColumn>
                    </GridView.Columns>
                </GridView>
            </ListView.View>              
        </ListView>

当我单击单个单元格中的按钮时,如何判断单击了哪个按钮(虽然我对此按钮所属的ListView项目感兴趣但要清楚,因为我真正想要做的是检索该行中的另一栏)

1 个答案:

答案 0 :(得分:2)

按钮的 DataContext (即事件的发件人)将是listview的Items中的dataitem。如果你想要容器(即ListViewItem),那么你可以沿着可视树走(例如使用 VisualTreeHelper.GetParent ),直到你点击ListViewItem,或者你可以使用 ListView_FileAttachments.ItemContainerGenerator。 ContainerFromItem 传入数据项(从按钮的DataContext获取)。