private static object OnCoerceSelectedItem(DependencyObject d, object baseValue) { BreadcrumbBar bar = d as BreadcrumbBar; if ((bar != null) && (bar._selectedHierarchy != null)) { int count = bar._selectedHierarchy.Count; if (count > 0) { return(bar._selectedHierarchy[count - 1]); } } return(null); }
// This method is called when an item is selected private static void OnSelectItem(object sender, ExecutedRoutedEventArgs e) { e.Handled = true; BreadcrumbBar bar = (BreadcrumbBar)sender; DependencyObject container = e.Parameter as DependencyObject; if (container != null) { ItemsControl parentContainer = ItemsControl.ItemsControlFromItemContainer(container); if (parentContainer != null) { object item = parentContainer.ItemContainerGenerator.ItemFromContainer(container); if (item != null) { bar.SelectItem(item, container, parentContainer); } } } }