protected override bool CanExecuteCore(SelectedItemCollection selection) { // all selected items must be hosts and in the same pool return(selection.Select(s => s.Connection).Count() == 1 && selection.All(s => s.XenObject is Host h && CanExecute(h))); }