1

假设我在 XAML 中有这样的代码:

<GridView>
  <GridView.ItemTemplate>
<DataTemplate>
    <Button Content="{Binding test}" Click="ButtonClick" />
</DataTemplate>
</GridView.ItemTemplate>
</GridView>

那我怎样才能得到选择了哪个GridViewItem呢?因为,通常所做的是将ItemClick 功能添加到 GridView 本身,但在这种情况下,我正在做一些定制的事情,需要从 Button 开始获取 SelectedItem。

我试过这样的代码:

void ButtonClick (object sender, RoutedEventArgs e)
{
   var g = (GridViewItem)((Button)sender).Parent;
}

但它不起作用(返回 null)。请帮忙!

谢谢!

4

1 回答 1

1

当然!这是我在广告控件无法加载广告时使用的代码(例如机器离线时)。在这种情况下,我将其从网格视图中删除。为此,我必须找到广告的父 gridviewitem 并删除整个内容。我这样做:

private void AdControl_ErrorOccurred_1(object sender, Microsoft.Advertising.WinRT.UI.AdErrorEventArgs e)
{
    var _Item = sender as DependencyObject;
    while (!(_Item is GridViewItem))
        _Item = VisualTreeHelper.GetParent(_Item);
    HubGrid.Items.Remove(_Item);
}
于 2012-12-07T00:53:57.460 回答