Пример #1
0
        /// <summary>
        /// Fills the CurrentItems property for display in ItemsControl
        /// based view (ListBox, ListView etc.).
        ///
        /// This method wraps a parameterized version of the same method
        /// with a call that contains the standard data field.
        /// </summary>
        protected bool PopulateView(IPathModel newPathToNavigateTo = null,
                                    bool browseEvent = true)
        {
            Logger.DebugFormat("PopulateView method");

            bool result = false;

            IsBrowsing = true;
            try
            {
                if (newPathToNavigateTo != null && browseEvent == true)
                {
                    if (this.BrowseEvent != null)
                    {
                        this.BrowseEvent(this,
                                         new BrowsingEventArgs(newPathToNavigateTo, true));
                    }
                }

                if (newPathToNavigateTo != null)
                {
                    SetCurrentLocation(newPathToNavigateTo.Path, false);
                }

                CurrentItemClear();

                if (_BrowseNavigation.IsCurrentPathDirectory() == false)
                {
                    return(false);
                }

                DirectoryInfo cur = _BrowseNavigation.GetDirectoryInfoOnCurrentFolder();

                if (cur.Exists == false)
                {
                    return(false);
                }

                result = InternalPopulateView(_ParsedFilter, cur, ShowIcons);

                if (result == true)
                {
                    SetCurrentLocation(newPathToNavigateTo.Path, true);
                }

                return(result);
            }
            catch
            {
            }
            finally
            {
                if (newPathToNavigateTo != null && browseEvent == true)
                {
                    if (this.BrowseEvent != null)
                    {
                        this.BrowseEvent(this,
                                         new BrowsingEventArgs(newPathToNavigateTo, false,
                                                               (result == true ? BrowseResult.Complete :
                                                                BrowseResult.InComplete)));
                    }
                }

                IsBrowsing = false;
            }

            return(result);
        }