Diskuze: Dynamické vyhledávání ve WPF DataGrid
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Pro tyto účely se používá CollectionView. Použití v MVVM je to jednoduché. V view budeš mít binding tak jak doposud, tedy na celou kolekci. Ve ViewModelu pak vždy, když nastavuješ tu kolekci, musíš udělat následující:
Items = new ObservableCollection<MyItem>();
// nastavení dat do Items
var view = CollectionViewSource.GetDefaultView(Items); // vrací ICollectionView
view.Filter = MyFilter;
Kde MyFilter je metoda, např.
private bool MyFilter(object obj)
{
var item = obj as MyItem;
return item.Name.Contains(FilterText);
}
S tím, že FilterText je text nabindovaný na TextBox.
Kromě filtrování ICollectionView umí také řazení (i podle
jednotlivých sloupců DataGridu) a seskupování.
Při změně filtru je potřeba volat view.Refresh(), proto je dobré si ten
pohled někam uložit.
Zobrazeno 2 zpráv z 2.