Если вы хотите получить объект данных, связанный с текущим ListItem, используйте RouteCommand. Вот пример
<ListView.ItemTemplate>
<DataTemplate>
<Button Margin="5,0" Command="{StaticResource ButtonCommand}"
CommandParameter="{Binding}">
</DataTemplate>
<ListView.ItemTemplate>
Вам также необходимо определить Command хотя бы в ListView.Resources
<RoutedCommand x:Key="ButtonCommand"/>
А затем настройте CommandBinding следующим образом
<ListView.CommandBindings>
<CommandBinding Command="{StaticResource ButtonCommand}" Executed="Button_Click"/>
</ListView.CommandBindings>
В конце обработчик записи
Button_Click(object sender, ExecutedRoutedEventArgs e)
{
e.Parameter// object that you Specified in CommandParameter
}
Заранее вы можете использовать любую инфраструктуру MVVM, определить всю логику команд и команд в модели, а затем просто привязать эти команды к соответствующим элементам.