Пример #1
0
        private void TvFolders_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            _logger.LogTrace($"{App.GetCaller()}() entered");

            // We must set the selected directory here, because inexplicably, the treeview control does not allow you
            // to bind to the selected item directly
            TreeView tvSender = (sender as TreeView);

            try
            {
                TVDirectoryItem tvdi = (tvSender.SelectedItem as TVDirectoryItem);

                if (tvdi != null)
                {
                    _vm.SelectedDirectory = tvdi;
                    ReloadFileList(_vm.SelectedDirectory.FullPath);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Exception in TvFolders_SelectedItemChanged()");
            }

            _logger.LogTrace($"{App.GetCaller()}() exiting");
        }
Пример #2
0
        private void RefreshTVFromPath(string rootDirectory)
        {
            _logger.LogTrace($"{App.GetCaller()}() entered");

            var newDirectoryList = new ObservableCollection <TVDirectoryItem>();

            // TODO: Add support for multiple root directories

            /*
             * if (rootDirectory.Length == 3 && rootDirectory.Contains(@":\"))
             *  rootDirName = rootDirectory;
             * else
             *  rootDirName = System.IO.Path.GetDirectoryName(rootDirectory);
             */

            var rootItem = new TVDirectoryItem(rootDirectory);

            newDirectoryList.Add(rootItem);

            // Change this in one go to avoid setting the listview into an intermediate state
            _vm.DirectoryList = newDirectoryList;

            _logger.LogTrace($"{App.GetCaller()}() exiting");
        }