/// <summary>
        /// Map changes to the CLR flags to the dependency properties
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void UpdateDependencyPropertiesFromCLRPRoperties( object sender, EventArgs e )
        {
            if( AlignLeft != ExplorerBrowserControl.ContentOptions.AlignLeft )
                AlignLeft = ExplorerBrowserControl.ContentOptions.AlignLeft;
            if( AutoArrange != ExplorerBrowserControl.ContentOptions.AutoArrange )
                AutoArrange = ExplorerBrowserControl.ContentOptions.AutoArrange;
            if( CheckSelect != ExplorerBrowserControl.ContentOptions.CheckSelect )
                CheckSelect = ExplorerBrowserControl.ContentOptions.CheckSelect;
            if( ExtendedTiles != ExplorerBrowserControl.ContentOptions.ExtendedTiles )
                ExtendedTiles = ExplorerBrowserControl.ContentOptions.ExtendedTiles;
            if( FullRowSelect != ExplorerBrowserControl.ContentOptions.FullRowSelect )
                FullRowSelect = ExplorerBrowserControl.ContentOptions.FullRowSelect;
            if( HideFileNames != ExplorerBrowserControl.ContentOptions.HideFileNames )
                HideFileNames = ExplorerBrowserControl.ContentOptions.HideFileNames;
            if( NoBrowserViewState != ExplorerBrowserControl.ContentOptions.NoBrowserViewState )
                NoBrowserViewState = ExplorerBrowserControl.ContentOptions.NoBrowserViewState;
            if( NoColumnHeader != ExplorerBrowserControl.ContentOptions.NoColumnHeader )
                NoColumnHeader = ExplorerBrowserControl.ContentOptions.NoColumnHeader;
            if( NoHeaderInAllViews != ExplorerBrowserControl.ContentOptions.NoHeaderInAllViews )
                NoHeaderInAllViews = ExplorerBrowserControl.ContentOptions.NoHeaderInAllViews;
            if( NoIcons != ExplorerBrowserControl.ContentOptions.NoIcons )
                NoIcons = ExplorerBrowserControl.ContentOptions.NoIcons;
            if( NoSubfolders != ExplorerBrowserControl.ContentOptions.NoSubfolders )
                NoSubfolders = ExplorerBrowserControl.ContentOptions.NoSubfolders;
            if( SingleClickActivate != ExplorerBrowserControl.ContentOptions.SingleClickActivate )
                SingleClickActivate = ExplorerBrowserControl.ContentOptions.SingleClickActivate;
            if( SingleSelection != ExplorerBrowserControl.ContentOptions.SingleSelection )
                SingleSelection = ExplorerBrowserControl.ContentOptions.SingleSelection;

            if( ThumbnailSize != ExplorerBrowserControl.ContentOptions.ThumbnailSize )
                ThumbnailSize = ExplorerBrowserControl.ContentOptions.ThumbnailSize;

            if( ViewMode != ExplorerBrowserControl.ContentOptions.ViewMode )
                ViewMode = ExplorerBrowserControl.ContentOptions.ViewMode;

            if( AlwaysNavigate != ExplorerBrowserControl.NavigationOptions.AlwaysNavigate )
                AlwaysNavigate = ExplorerBrowserControl.NavigationOptions.AlwaysNavigate;
            if( NavigateOnce != ExplorerBrowserControl.NavigationOptions.NavigateOnce )
                NavigateOnce = ExplorerBrowserControl.NavigationOptions.NavigateOnce;

            if( AdvancedQueryPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.AdvancedQuery )
                AdvancedQueryPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.AdvancedQuery;
            if( CommandsPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.Commands )
                CommandsPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Commands;
            if( CommandsOrganizePane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsOrganize )
                CommandsOrganizePane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsOrganize;
            if( CommandsViewPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsView )
                CommandsViewPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsView;
            if( DetailsPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.Details )
                DetailsPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Details;
            if( NavigationPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.Navigation )
                NavigationPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Navigation;
            if( PreviewPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.Preview )
                PreviewPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Preview;
            if( QueryPane != ExplorerBrowserControl.NavigationOptions.PaneVisibility.Query )
                QueryPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Query;

            if( NavigationLogIndex != ExplorerBrowserControl.NavigationLog.CurrentLocationIndex )
                NavigationLogIndex = ExplorerBrowserControl.NavigationLog.CurrentLocationIndex;
        }
        /// <summary>
        /// Map changes to the CLR flags to the dependency properties
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void UpdateDependencyPropertiesFromCLRPRoperties(object sender, EventArgs e)
        {
            AlignLeft = ExplorerBrowserControl.ContentOptions.AlignLeft;
            AutoArrange = ExplorerBrowserControl.ContentOptions.AutoArrange;
            CheckSelect = ExplorerBrowserControl.ContentOptions.CheckSelect;
            ExtendedTiles = ExplorerBrowserControl.ContentOptions.ExtendedTiles;
            FullRowSelect = ExplorerBrowserControl.ContentOptions.FullRowSelect;
            HideFileNames = ExplorerBrowserControl.ContentOptions.HideFileNames;
            NoBrowserViewState = ExplorerBrowserControl.ContentOptions.NoBrowserViewState;
            NoColumnHeader = ExplorerBrowserControl.ContentOptions.NoColumnHeader;
            NoHeaderInAllViews = ExplorerBrowserControl.ContentOptions.NoHeaderInAllViews;
            NoIcons = ExplorerBrowserControl.ContentOptions.NoIcons;
            NoSubfolders = ExplorerBrowserControl.ContentOptions.NoSubfolders;
            SingleClickActivate = ExplorerBrowserControl.ContentOptions.SingleClickActivate;
            SingleSelection = ExplorerBrowserControl.ContentOptions.SingleSelection;
            ThumbnailSize = ExplorerBrowserControl.ContentOptions.ThumbnailSize;
            ViewMode = ExplorerBrowserControl.ContentOptions.ViewMode;
            AlwaysNavigate = ExplorerBrowserControl.NavigationOptions.AlwaysNavigate;
            NavigateOnce = ExplorerBrowserControl.NavigationOptions.NavigateOnce;
            AdvancedQueryPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.AdvancedQuery;
            CommandsPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Commands;
            CommandsOrganizePane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsOrganize;
            CommandsViewPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.CommandsView;
            DetailsPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Details;
            NavigationPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Navigation;
            PreviewPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Preview;
            QueryPane = ExplorerBrowserControl.NavigationOptions.PaneVisibility.Query;
            NavigationLogIndex = ExplorerBrowserControl.NavigationLog.CurrentLocationIndex;

            if (itemsChanged.WaitOne(1, false))
            {
                items.Clear();
                foreach (ShellObject obj in ExplorerBrowserControl.Items)
                {
                    items.Add(obj);
                }
            }

            if (selectionChanged.WaitOne(1, false))
            {
                selectionChangeWaitCount = 4;
            }
            else if (selectionChangeWaitCount > 0)
            {
                selectionChangeWaitCount--;

                if (selectionChangeWaitCount == 0)
                {
                    selectedItems.Clear();
                    foreach (ShellObject obj in ExplorerBrowserControl.SelectedItems)
                    {
                        selectedItems.Add(obj);
                    }
                }
            }
        }