Entity Framework は、ChangeTracker.State というプロパティを持つ追跡可能なエンティティを提供します。これを使用して、エンティティが削除されているかどうかを識別できます。
私たちのリストでは、削除されたエンティティを表示したくありません。
どちらが速いですか?
方法 1: CollectionViewSource.Filter を使用してレコードをテストおよび削除する
<CollectionViewSource Filter="ViewSource_Filter" />
private void ViewSource_Filter(object sender, FilterEventArgs e)
{
var _Item = e.Item as ITrackableEntity;
e.Accepted = _Item.ChangeTracker.State != ObjectState.Deleted;
}
方法 2: DataTrigger を ItemTemplate.DataTemplate に追加して、項目をテストおよび非表示にする
<DataTemplate.Resources>
<Style TargetType="{x:Type DockPanel}">
<Style.Triggers>
<DataTrigger Binding="{Binding ChangeTracker.State}">
<DataTrigger.Value>
<entities:ObjectState>Deleted</entities:ObjectState>
</DataTrigger.Value>
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataTemplate.Resources>
ありがとう。