/// <summary> /// Sets the <see cref="System.Windows.Data.CollectionViewSource.View.Filter"/> /// </summary> /// <param name="viewSource">the <see cref="System.Windows.Data.CollectionViewSource"/></param> /// <param name="filter">the filter of the View</param> public static void SetFilter(CollectionViewSource viewSource, Predicate <object> filter) { if (!FrameworkDispatcherUtility.HasCurrentWindowsApplication()) { return; } viewSource.CheckViewSource(); viewSource.View.Filter = filter; }
/// <summary> /// Gets the <see cref="System.Windows.Data.CollectionViewSource"/>. /// </summary> /// <param name="source">the Source</param> public static CollectionViewSource GetCollectionViewSource(object source) { if (!FrameworkDispatcherUtility.HasCurrentWindowsApplication()) { return(null); } var viewSource = new CollectionViewSource(); SetSource(viewSource, source); viewSource.CheckViewSource(); return(viewSource); }
/// <summary> /// Applies a sort with the specified descriptions. /// </summary> /// <param name="viewSource">the <see cref="System.Windows.Data.CollectionViewSource"/></param> /// <param name="descriptions">the sort descriptions</param> public static void ApplySort(CollectionViewSource viewSource, IEnumerable <SortDescription> descriptions) { if (!FrameworkDispatcherUtility.HasCurrentWindowsApplication()) { return; } viewSource.CheckViewSource(); if (viewSource.SortDescriptions.Any()) { viewSource.SortDescriptions.Clear(); } descriptions.ForEachInEnumerable(i => viewSource.SortDescriptions.Add(i)); }
/// <summary> /// Applies the groupings. /// </summary> /// <param name="viewSource">The view source.</param> /// <param name="groupings">The groupings.</param> public static void ApplyGroupings(CollectionViewSource viewSource, IEnumerable <GroupDescription> groupings) { if (!FrameworkDispatcherUtility.HasCurrentWindowsApplication()) { return; } viewSource.CheckViewSource(); using (viewSource.DeferRefresh()) { if (viewSource.GroupDescriptions.Any()) { viewSource.GroupDescriptions.Clear(); } groupings.ForEachInEnumerable(i => viewSource.GroupDescriptions.Add(i)); } }