Есть несколько вариантов.
One. создайте пользовательский элемент управления, который связывает объект данных для этой строки. В этот пользовательский элемент управления добавьте обработчик для связанного объекта.
Я не думаю, что ваша привязка при нажатии будет работать. Sans Binding Statment и просто объявить свой клик на строку.
Добавьте обработчик на страницу, где расположен элемент управления.
Имейте в виду, что если вы связываете таким образом, вы сможете работать только с отправителем этого элемента (кнопки) и его свойств. Если вам нужно получить определенные атрибуты объекта, вам, возможно, лучше воспользоваться первым вариантом.
Маленький пример, демонстрирующий функциональность путем добавления 10 кнопок в список со списком событий. НТН
DataTemplate XAML
<UserControl.Resources>
<DataTemplate x:Name="MyDataTemplate">
<Grid>
<Button Click="Button_Click" Content="{Binding ItemText}"/>
</Grid>
</DataTemplate>
</UserControl.Resources>
ListBox XAML
<ListBox x:Name="ListBoxThingee" ItemTemplate="{StaticResource MyDataTemplate}"/>
Code Behind (я только что включил все это в файл page.xaml
public class MyClass
{
public string ItemText { get; set; }
}
public partial class Page : UserControl
{
ObservableCollection<MyClass> _Items;
public Page()
{
InitializeComponent();
_Items = new ObservableCollection<MyClass>();
for (int i = 0; i < 10; i++)
{
_Items.Add(new MyClass() {ItemText= string.Format("Item - {0}", i)});
}
this.ListBoxThingee.ItemsSource = _Items;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Button _b = sender as Button;
if (_b != null)
{
string _s = _b.Content as string;
MessageBox.Show(_s);
}
}
}