private void SetupUIOnSelectOrNavigate() {
Dispatcher.BeginInvoke(DispatcherPriority.Background, (ThreadStart)(() => {
btnDefSave.Items.Clear();
var selItemsCount = _ShellListView.GetSelectedCount();
var selectedItem = this._ShellListView.GetFirstSelectedItem();
if (selectedItem == null) {
btnOpenWith.IsEnabled = false;
} else {
var mnu = new ShellContextMenu(this._ShellListView, false);
try {
var tempPoint = btnOpenWith.PointToScreen(new WIN.Point(0, 0));
var itemMenuCount = mnu.ShowContextMenu(new System.Drawing.Point((int)tempPoint.X, (int)tempPoint.Y + (int)btnOpenWith.ActualHeight), 1, false);
btnOpenWith.IsEnabled = itemMenuCount > 0 && selItemsCount == 1;
} catch {
btnOpenWith.IsEnabled = false;
}
}
btnNewItem.IsEnabled = this._ShellListView.CurrentFolder.IsFileSystem || this._ShellListView.CurrentFolder.ParsingName == KnownFolders.Libraries.ParsingName;
if (selectedItem != null && selectedItem.IsFileSystem && IsPreviewPaneEnabled && !selectedItem.IsFolder && selItemsCount == 1)
this.Previewer.FileName = selectedItem.ParsingName;
else if (!String.IsNullOrEmpty(this.Previewer.FileName))
this.Previewer.FileName = null;
//Set up ribbon contextual tabs on selection changed
SetUpRibbonTabsVisibilityOnSelectOrNavigate(selItemsCount, selectedItem);
SetUpButtonsStateOnSelectOrNavigate(selItemsCount, selectedItem);
}));
}