iyi performans çimdik var DataGridRow Görünürlüğünü değiştiriyordu. Fark büyüklüğünde!
1. DataVirenin ItemSource kaynağını Bağladığınız Toplama Öğesine isVisible özelliğini ekleyin.
private bool _isVisible = true;
public bool IsVisible
{
get { return _isVisible; }
set
{
if (_isVisible == value)
return;
_isVisible = value;
RaisePropertyChanged(()=>IsVisible);
}
}
2.Trigger sizin IsVisible özelliğine bağlayarak DataGridRow görünürlüğü:
<DataGrid.ItemContainerStyle>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Visibility"
Value="{Binding Path=IsVisible,
Converter={StaticResource BoolToVisibility}}"/>
</Style>
</DataGrid.ItemContainerStyle>
3.Well, hani ViewModel gibi çok tahmin yere IsVisible set lazım. İşte ben ne yapıyorum sadece örnek verilmektedir (sadece/yapıştır işi kopyalama) - temelde benim diğer ViewModel bazı ölçütlere göre doğru veya yanlış olarak IsVisible ayarı:
FilterViewModel.OnFilter += (s, a) =>
{
foreach (Row row in ViewModel.Rows)
row.IsVisible = !FilterViewModel.FilteringItems.Any(item =>
item.IsSelected && item.Name == row.Name);
};
Bu benim için çalıştı. Benzer bir problem bu şekilde Angular içinde çözülebilir :). – Den