private static async void InternalModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { AdaptiveCollectionView obj = (AdaptiveCollectionView)d; AdaptiveCollectionViewMode value = (AdaptiveCollectionViewMode)e.NewValue; if (Enum.IsDefined(typeof(AdaptiveCollectionViewMode), value) == false) { throw new ArgumentException($"{nameof(AdaptiveCollectionViewMode)} is not defined", nameof(value)); } int index = -1; if (obj.Items.Count > 0) { ItemsStackPanel stackPanel = obj.ItemsPanelRoot as ItemsStackPanel; if (stackPanel != null) { index = stackPanel.FirstVisibleIndex; } ItemsWrapGrid wrapGrid = obj.ItemsPanelRoot as ItemsWrapGrid; if (wrapGrid != null) { index = wrapGrid.FirstVisibleIndex; } } if (value == AdaptiveCollectionViewMode.List) { obj.ItemsPanel = obj._itemsStackPanel; } else { obj.ItemsPanel = obj._itemsWrapGrid; } if (obj.ModeChanged != null) { obj.ModeChanged(obj, new AdaptiveCollectionViewModeChangedEventArgs((AdaptiveCollectionViewMode)e.OldValue, (AdaptiveCollectionViewMode)e.NewValue)); } await obj.WaitForLayoutUpdatedAsync(); if (obj.SelectedItem != null) { obj.ScrollIntoView(obj.SelectedItem, ScrollIntoViewAlignment.Leading); } else if (index > -1) { var item = obj.Items.ElementAtOrDefault(index); if (item != null) { obj.ScrollIntoView(item, ScrollIntoViewAlignment.Leading); } } }
public AdaptiveCollectionViewModeChangedEventArgs(AdaptiveCollectionViewMode oldMode, AdaptiveCollectionViewMode newMode) { OldMode = oldMode; NewMode = NewMode; }
public AdaptiveCollectionViewModeChangedEventArgs(AdaptiveCollectionViewMode oldMode, AdaptiveCollectionViewMode newMode) { this.OldMode = oldMode; this.NewMode = NewMode; }