Похоже, что вы связали список со списком, и ваши кнопки являются частью вашего шаблона данных или шаблона элемента.
Вы можете привязать свойство Tag
кнопок к вашему объекту данных:
<DataTemplate DataType="{x:Type c:Person}">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock>Name:</TextBlock>
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
<Button Click="Button_Click" Tag="{Binding Path=.}">Click me!</Button>
</StackPanel>
</DataTemplate>
И событие щелчка:
private void Button_Click(object sender, RoutedEventArgs e)
{
Button b = (Button)sender;
Person p = (Person)b.Tag;
MessageBox.Show(p.Name);
}
Но, как предлагают другие люди, вы можете использовать свойство DataContext
кнопки.В моем примере он уже указывает на объект Person
.
Я думаю, что используя свойство Tag
, вы получаете больше контроля над тем, что вы хотите получить в своем обработчике событий.
Есть много способов сделать все!Выберите тот, который подходит вам больше всего.