private void SetUpButtonsStateOnSelectOrNavigate(int selectedItemsCount, IListItemEx selectedItem) {
btnBadges.IsEnabled = selectedItemsCount > 0;
btnCopy.IsEnabled = selectedItemsCount > 0;
btnCopyto.IsEnabled = selectedItemsCount > 0;
btnMoveto.IsEnabled = selectedItemsCount > 0;
btnCut.IsEnabled = selectedItemsCount > 0;
btnDelete.IsEnabled = selectedItem != null && selectedItem.IsFileSystem;
btnRename.IsEnabled = selectedItem != null && (selectedItem.IsFileSystem || (selectedItem.Parent != null && selectedItem.Parent.Equals(KnownFolders.Libraries)));
btnProperties3.IsEnabled = selectedItemsCount > 0;
if (selectedItem != null) {
var rg = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" + Path.GetExtension(selectedItem.ParsingName) + @"\OpenWithProgids");
if (rg == null)
btnEdit.IsEnabled = false;
else {
string filetype = rg.GetValueNames()[0];
rg.Close();
using (var rgtype = Registry.ClassesRoot.OpenSubKey(filetype + @"\shell\edit\command")) {
btnEdit.IsEnabled = !(rgtype == null);
}
}
}
btnSelAll.IsEnabled = selectedItemsCount != _ShellListView.Items.Count;
btnSelNone.IsEnabled = selectedItemsCount > 0;
btnShare.IsEnabled = selectedItemsCount == 1 && selectedItem.IsFolder;
btnAdvancedSecurity.IsEnabled = selectedItemsCount == 1;
btnHideSelItems.IsEnabled = _ShellListView.CurrentFolder.IsFileSystem;
}