/// <summary>Wird aufgerufen, wenn sich die SortAtHeaderClick Eigenschaft ändert</summary> private static void OnSortAtHeaderClickChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { var lv = (ListView)d; if ((bool)e.NewValue) { LastClickedHeaders.Add(new WeakReference(lv), null); LastDirections.Add(new WeakReference(lv), ListSortDirectionEx.Ascending); lv.AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnClicked)); } else { lv.RemoveHandler(ButtonBase.ClickEvent, new RoutedEventHandler(ColumnClicked)); var gv = lv.View as GridView; if (gv != null) { foreach (var col in gv.Columns) { col.HeaderTemplate = null; } } ClearSortRules(lv); LastClickedHeaders.Remove(LastClickedHeaders.FirstOrDefault(x => Equals(x.Key.Target, lv)).Key); LastDirections.Remove(LastDirections.FirstOrDefault(x => Equals(x.Key.Target, lv)).Key); } }
/// <summary>Wird aufgerufen, wenn sich die IsSortAtClickEnabled-Eigenshcat ändert.</summary> private static void OnIsSortAtClickEnabledChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { if ((bool)e.NewValue) { return; } var col = (GridViewColumn)d; foreach (var item in LastClickedHeaders.Where(item => item.Value != null && Equals(item.Value.Column, col))) { col.HeaderTemplate = null; ClearSortRules(item.Key.Target as ListView); } }