1
<StackPanel Orientation="Vertical" Grid.Column="3" Grid.RowSpan="2">
    <Button x:Name="changeItem" Click="changeItem_Click" Visibility="Visible" >
        <Image Source="Assets/TestIcon.png" HorizontalAlignment="Center" VerticalAlignment="Center" Width="45" Height="45" />
    </Button>
</StackPanel>

此 XAML 代码是 ListView 项的 DataTemplate 的一部分。当用户单击这些按钮之一时,应触发不同的操作。比如删除item,修改item等等。

所以我需要找出包含按钮的项目的索引才能访问它。我怎样才能做到最好?

4

1 回答 1

2

您在事件处理程序中有事件发送者对象。只需将其转换为 FrameworkElement 并获取数据上下文:

var element = sender as FrameworkElement;
Debug.Assert(element != null, "element != null");
var context = element.DataContext as MyDataModel;
Debug.Assert(context != null, "context != null");

其中 MyDataModel 是您的数据模型类。

于 2013-04-06T13:04:02.163 回答