/// <summary>
        /// Handles the SelectedItemChanged event of the breadcrumb control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="PropertyChangedRoutedEventArgs{object}"/> instance containing the event data.</param>
        private void OnBreadcrumbSelectedItemChanged(object sender, ObjectPropertyChangedRoutedEventArgs e)
        {
            if (this.synchronizingSelection)
            {
                return;
            }

            this.synchronizingSelection = true;
            try {
                UpdateComboBoxItems();

                // We will get the trail to the item selected in the Breadcrumb and use that to select the item in the TreeView
                IList trail = ConvertItemHelper.GetTrail(this.breadcrumb.RootItem, this.breadcrumb.SelectedItem);
                if (null != trail && 0 != trail.Count)
                {
                    SelectItem(this.treeView, trail, 0);
                }
            }
            finally {
                this.synchronizingSelection = false;
            }
        }
        /////////////////////////////////////////////////////////////////////////////////////////////////////
        // NON- PUBLIC PROCEDURES
        /////////////////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Handles the ConvertItem event of the breadcrumb control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="BreadcrumbConvertItemEventArgs"/> instance containing the event data.</param>
        private void OnBreadcrumbConvertItem(object sender, BreadcrumbConvertItemEventArgs e)
        {
            ConvertItemHelper.HandleConvertItem(sender, e);
        }
 /// <summary>
 /// Converts a value.
 /// </summary>
 /// <param name="value">The value produced by the binding source.</param>
 /// <param name="targetType">The type of the binding target property.</param>
 /// <param name="parameter">The converter parameter to use.</param>
 /// <param name="culture">The culture to use in the converter.</param>
 /// <returns>
 /// A converted value. If the method returns null, the valid null value is used.
 /// </returns>
 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
 {
     return(ConvertItemHelper.GetPath(value));
 }