MV-VM パターンを使用して、データ オブジェクトのリストからアイテムを削除するという概念と、現在の UI 実装からそれらを直接削除するという概念を分離することを検討してください。バインディングを除けば、この 2 つが互いについて知る必要はありません。
MVVM パターンを使用する場合は、ViewModel でブール型の「IsSelected」プロパティを公開します。
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;
}
}
次に、ビューで次のようなことを試してください。
<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>
これにより、実際の ListView であるかのように、ViewModel のリスト内の項目を追加、編集、および削除できます。ここから、ListViewItem を実際にチェックせずに、各項目の IsSelected (ListView とのマウス操作に応答する) をチェックすることもできます。これは、はるかにクリーンで保守可能なソリューションになります。