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 に答える