1

我正在开发一个 Win8 Metro 应用程序。我正在使用 GridView。在 GridView 的 ItemTemplate 中,我有 3 个按钮(Button1、Button2、Button3)。因此,在我的屏幕上,如果我一次有 5 个 GridView 项,那么我将看到 5x3 = 15 个按钮。

问题是,如果单击这些按钮中的任何一个,我将无法跟踪父 GridView 项。

在 GridView 的属性中,有“SelectedIndex”(或 SelectedItem)属性。但是,它的值是在单击 GridView 项目时设置的(而不是在单击 GridViewItem 内的按钮时)。因此,单击按钮时,SelectedIndex 保持为 -1。

如何在 ButtonClick 上找出谁是此按钮的父项?

4

2 回答 2

1

通过阅读您在评论中的回复,您似乎想要获取对基础数据项而不是网格项本身的引用。在这种情况下,请在您的按钮单击处理程序中执行以下操作...

Void Button_Click(sender, e)
{
    var btn = (Button)sender;
    var dc = btn.DataContext as MyBoundType;  // don't forget to check for null!
    var itemId = dc.Id; // assuming your object has an Id field
}
于 2013-01-27T14:30:11.023 回答
0

将按钮的绑定CommandParameter到父项,如下所示:

<Button 
    Command="{Binding RemoveCommand}"
    CommandParameter="{Binding RelativeSource=
        {RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}" 
    />
于 2013-01-26T22:36:00.660 回答