void ShellListView_Navigating(object sender, NavigatingEventArgs e) {
if (this._ShellListView.CurrentFolder == null) return;
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => {
this.btnCancelNavigation.Visibility = Visibility.Visible;
this.btnGoNavigation.Visibility = Visibility.Collapsed;
this._ProgressTimer.Start();
}));
if (this.bcbc.RootItem.Items.OfType<ShellItem>().Last().IsSearchFolder) {
this.bcbc.RootItem.Items.RemoveAt(this.bcbc.RootItem.Items.Count - 1);
}
var pidl = e.Folder.PIDL.ToString();
this.bcbc.SetPathWithoutNavigate(pidl);
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => {
var tab = tcMain.SelectedItem as Wpf.Controls.TabItem;
if (tab != null && this._ShellListView.GetSelectedCount() > 0) {
if (tab.SelectedItems != null)
tab.SelectedItems.AddRange(this._ShellListView.SelectedItems.Select(s => s.ParsingName).ToList());
else
tab.SelectedItems = this._ShellListView.SelectedItems.Select(s => s.ParsingName).ToList();
}
this.Title = "Better Explorer - " + e.Folder.DisplayName;
}));
if (e.Folder.IsSearchFolder) {
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => {
var selectedTabItem = tcMain.SelectedItem as Wpf.Controls.TabItem;
if (selectedTabItem != null) {
selectedTabItem.Header = e.Folder.DisplayName;
selectedTabItem.Icon = e.Folder.ThumbnailSource(16, ShellThumbnailFormatOption.IconOnly, ShellThumbnailRetrievalOption.Default);
selectedTabItem.ShellObject = e.Folder;
selectedTabItem.ToolTip = e.Folder.ParsingName.Replace("%20", " ").Replace("%3A", ":").Replace("%5C", @"\");
}
}));
} else {
edtSearchBox.ClearSearchText();
}
this._ShellListView.Focus();
}