protected override void OnExecuted(CommandExecutorExecutedEventArgs args) { var commandNode = args.CommandNode; //更新当前命令节点,只有当前命令树节点不是叶子节点并且为空命令节点 if (commandNode != null && commandNode.Children.Count > 0 && commandNode.Command == null) { this.Current = commandNode; } base.OnExecuted(args); }
protected override void OnExecuted(CommandExecutorExecutedEventArgs args) { var last = args.Context.Expression; //从执行器的命令表达式中找出最后一个命令表达式 while (last != null && last.Next != null) { last = last.Next; } //查找表达式中最后一个命令节点 var node = this.Find(last.FullPath); //更新当前命令节点,只有命令树节点不是叶子节点并且为空命令节点 if (node != null && node.Children.Count > 0 && node.Command == null) { this.Current = node; } //调用基类同名方法 base.OnExecuted(args); }