Entity Framework는 ChangeTracker.State라는 속성이있는 추적 가능 엔터티를 제공합니다. 이것을 사용하여 엔티티가 삭제되었는지 식별 할 수 있습니다.WPF CollectionViewSource.Filter 성능 및 DataTrigger
목록에서 삭제 된 항목을 표시하고 싶지는 않습니다.
어느 것이 더 빠릅니까?
방법 1 : 녹음
<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 테스트하고 제거하는 CollectionViewSource.Filter 사용 : 항목
<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>
을 테스트하고 숨기기 위해 ItemTemplate.DataTemplate에 DataTrigger 추가를
감사합니다.
거의 항상 : 측정해야하는 것이 빠르다는 것을 알아 내기. 옵션과 측정 값을 모두 만듭니다. 우리가 볼 수없는 의존성이 너무 많아서 이러한 유형의 질문에 확실한 답을 제공하는 것이 거의 불가능합니다. –
예. 그렇지만 어떻게 XAML.DataTrigger의 실행을 측정합니까? 나는 진짜 측정이 거의 불가능할 것이라고 생각했기 때문에 일반적인 입장에서 더 많이 묻고 있었다. –
전에 XAML 동작을 측정하려고 시도했을 때 "AllDone"이벤트가 없으면 정확하기위한 계획이 거의 완성되었습니다. –