Рассмотрите возможность использования шаблона M-V-VM, чтобы отделить понятие удаления элемента из списка объектов данных и ПРЯМО удаления из текущей реализации пользовательского интерфейса. Этим двум не нужно знать друг о друге, кроме Привязок.
Когда вы используете шаблон MVVM, предоставьте логическое свойство IsSelected в вашей ViewModel.
public class SimpleViewModel : BaseViewModel //For INotifyPropertyChanged, etc
{
public IList<SimpleBusinessObject> ViewModelItems;
public SimpleViewModel()
{
ViewModelItems = new ObservableList<SimpleBusinessObjectViewModel>();
}
}
public class SimpleBusinessObjectViewModel
{
public bool ViewModelIsSelected { get; set; }
public SimpleBusinessObjectViewModel()
{
ViewModelIsSelected = false;
}
}
Далее, в вашем View попробуйте что-то вроде этого:
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Setter Property="IsSelected" Value="{Binding ViewModelIsSelected}"
</Style.Triggers>
</Style>
<ListView ItemsSource={Binding ViewModelItems}>
//here you can insert how you want to display a ListViewItem
</ListView>
Это позволит вам добавлять, редактировать и удалять элементы в списке ViewModel - как если бы это был настоящий ListView. Отсюда вы также можете проверить IsSelected каждого элемента (который реагирует на взаимодействие мыши с ListView) без фактической проверки ListViewItem. Это будет гораздо более чистое и удобное решение.