前台
把ID值绑定到Tag属性中 (Tag="{Binding Path=id}")
<DockPanel HorizontalAlignment="Left" Name="dpBody" VerticalAlignment="Top" Margin="10,160,0,0" Width="534">
<ListView Name="lvSelfDefine" ItemsSource="{Binding Path=Table}" Height="161" Width="532" SelectionChanged="lvSelfDefine_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Header="GVId" DisplayMemberBinding="{Binding Path=id}" Width="0" />
<GridViewColumn Header="操作" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Content="删除" Tag="{Binding Path=id}" Cursor="Hand" Margin="5,5,0,0" Name="btnDelete" Grid.Column="2" Click="btnDelete_Click">
<Button.Template>
<ControlTemplate TargetType="Button">
<TextBlock TextDecorations="Underline" Name="tbDelete" >
<ContentPresenter />
</TextBlock>
</ControlTemplate>
</Button.Template>
<Button.Style>
<Style TargetType="Button">
<Setter Property="Foreground" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
<Button Content="运行" Tag="{Binding Path=id}" Cursor="Hand" Height="20" Width="35" Margin="10,5,0,0" Name="btnRun" Grid.Column="2" Click="btnRun_Click">
<Button.Template>
<ControlTemplate TargetType="Button">
<TextBlock TextDecorations="Underline" Name="tbRun" >
<ContentPresenter />
</TextBlock>
</ControlTemplate>
</Button.Template>
<Button.Style>
<Style TargetType="Button">
<Setter Property="Foreground" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="名称" DisplayMemberBinding="{Binding Path=name}" Width="130" />
</GridView>
</ListView.View>
</ListView>
</DockPanel>
后台读取Tag 中的ID值
/// <summary>
/// 删除当前行
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
int selectedIndex = int.Parse((sender as Button).Tag.ToString());
DataRow dr = ((DataRowView)this.lvSelfDefine.Items[selectedIndex]).Row;
string nodeID = dr["id"].ToString();
}