2

我有一个ListView,我将它的ItemsSource属性设置ObservableCollection为:

public class Item
{
    public string Name { get; set; }
}

所以:

ObservableCollection data = new ObservableCollection<Item>();
MyList.ItemsSource = data;

这是我的ListView

<ListView x:Name="MyList">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Button Click="Button_Click"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

现在我向我的 ObservableCollection 添加一个新项目并捕获 Button_Click 事件:

Item item1 = new Item();
item1.Name = "item1";
data.Add(item1);

private void Button_Click(Button sender, RoutedEventArgs e)
{
    // How to get item1 here from sender?
}

所以,我想获得与我点击的按钮相关的项目。我怎么能这样做?谢谢。

4

1 回答 1

2

你的Item意志在DataContext其中:ListViewItemButton

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = sender as Button;
    Item item = button.DataContext as Item;
}
于 2012-05-24T22:13:07.900 回答