【发布时间】:2011-11-10 17:17:44
【问题描述】:
我想在 GridView 的每一行中都有一个按钮来对这一行执行操作。我能够获得点击,但是如何确定该按钮属于哪一行?
我现在拥有的是这样的:
<ListView ItemsSource="{Binding Calibrations}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Voltage [kV]" Width="70" DisplayMemberBinding="{Binding Voltage}" />
<GridViewColumn Header="Filter" Width="100" DisplayMemberBinding="{Binding FilterName}" />
<GridViewColumn Header="Calibration Date" Width="100" DisplayMemberBinding="{Binding CalibrationDate}" />
<GridViewColumn Header="Calibration" Width="60">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button Content="Start" Click="OnStart" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
private void OnStart(object sender, RoutedEventArgs e)
{
// how do I know, on which item this button is
}
有没有办法将此行上的项目绑定到 RoutedEventArgs?
【问题讨论】:
-
检查 Grid 的选中项属性怎么样?
-
不知道 WPF,但 asp.net 有一个 OnCommand 事件,您可以指定传递到处理程序的 eventargs 的 CommandName 和 CommandType 参数。