private static void OnTabItemVisibilityChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SidePanelControl source = d as SidePanelControl;
            int selectedIndex       = source.SelectedTabIndex;

            if (!((source.SelectedTabIndex == BrowseTabIndex && source.ShowBrowseTab) ||
                  (source.SelectedTabIndex == SearchTabIndex && source.ShowSearchTab) ||
                  (source.SelectedTabIndex == ContentsTabIndex && source.ShowContentsTab)))
            {
                if (source.ShowBrowseTab)
                {
                    source.SelectedTabIndex = BrowseTabIndex;
                }
                else if (source.ShowSearchTab)
                {
                    source.SelectedTabIndex = SearchTabIndex;
                }
                else if (source.ShowContentsTab)
                {
                    source.SelectedTabIndex = ContentsTabIndex;
                }
            }
            int i = 0;

            if (source.ShowBrowseTab)
            {
                i++;
            }
            if (source.ShowSearchTab)
            {
                i++;
            }
            if (source.ShowContentsTab)
            {
                i++;
            }
            if (i == 1 || !source.ShowTabHeaders)
            {
                source.ShowTabs = false;
            }
            else
            {
                source.ShowTabs = true;
            }
        }
        /// <summary>
        /// DataSourceProviderProperty property changed handler.
        /// </summary>
        /// <param name="d">SidePanelControl that changed its DataSourceProvider.</param>
        /// <param name="e">Event arguments.</param>
        private static void OnDataSourceProviderPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SidePanelControl source = d as SidePanelControl;

            source.onDataSourceProviderChanged();
        }
        /// <summary>
        /// MapProperty property changed handler.
        /// </summary>
        /// <param name="d">SidePanelControl that changed its Map.</param>
        /// <param name="e">Event arguments.</param>
        private static void OnMapPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            SidePanelControl source = d as SidePanelControl;

            source.onMapChanged();
        }