public bool CommandJudger(object pra) { if (pra is object[]) { object[] cmds = pra as object[]; string cmd = cmds[0] as string; ChrominViewModel cvm = cmds[1] as ChrominViewModel; //Console.WriteLine("Canexcute=====>" + cmd); if (cvm == null || cvm.WebBrowser == null) { if (cmd == "_OpenUrl") { if (!string.IsNullOrWhiteSpace((string)cmds[2])) { return(true); } } if (cmd == "_NewTask") { if (!string.IsNullOrWhiteSpace((string)cmds[2])) { return(true); } } return(false); } switch (cmd) { case "_Back": return(cvm.WebBrowser.CanGoBack); case "_Fresh": return(cvm.WebBrowser.Address != null); case "_Next": return(cvm.WebBrowser.CanGoForward); case "_Close": return(true); case "_OpenUrl": App.Current.Dispatcher.BeginInvoke(new Action(() => { CommandManager.InvalidateRequerySuggested(); })); if ((cvm == null || cvm.WebBrowser.Address == null)) { if ((cmds[2] == null || (string)cmds[2] == "")) { return(false); } return(true); } else { return(cvm.WebBrowser.Address != cmds[2] as string); } case "_NewTask": return(CmdHelper.CanAnalysis(cmds[2] as string)); default: break; } } return(pra == null ? false : true); }