private static void OnItemsSourceChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { JumpListBox jumpListBox = sender as JumpListBox; if (jumpListBox == null) { throw new ArgumentException("The sender must be a JumpListBox"); } IEnumerable items = e.NewValue as IEnumerable; var collection = new AlphabetizedCollection(jumpListBox.IndexedMember, jumpListBox.ImageMember); collection.AddRange(items); _orderedCollection = collection.OrderBy(c => c.FirstLetter).ToList(); jumpListBox.mainListBox.DataContext = null; jumpListBox._jumpListSelector.ItemsSource = collection; if (jumpListBox.IsPumped) { PumpList <AlphabetizedItemContainer> pumpList = new PumpList <AlphabetizedItemContainer>(_orderedCollection); jumpListBox.mainListBox.ItemsSource = pumpList.Items; pumpList.StartPump(); } else { jumpListBox.mainListBox.ItemsSource = _orderedCollection; } }
private static void OnSelectedItemChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { JumpListBox jumpListBox = sender as JumpListBox; if (jumpListBox == null) { throw new ArgumentException("The sender must be a JumpListBox"); } if (e.NewValue == null) { jumpListBox.mainListBox.SelectedItem = null; } }
private static void OnItemTemplateChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { JumpListBox jumpListBox = sender as JumpListBox; if (jumpListBox == null) { throw new ArgumentException("The sender must be a JumpListBox"); } DataTemplate template = e.NewValue as DataTemplate; if (template == null) { throw new ArgumentException("The template must be a DataTemplate"); } jumpListBox.mainListBox.ItemTemplate = template; }