public override void OnApplyTemplate() { base.OnApplyTemplate(); //Assign commands in run time. //RootVM is defined in ParameterDicConverter, where Parameter is from ICommand.CommandParameter. _rvm.Commands.AddRandom = ScriptCommands.AssignMethodResult("{RootVM}", "AddRandomNumber", null, "{Output}", ScriptCommands.PrintDebug("{Output} Added.")); //-> thus _rvm.Commands.AddRandomCommand is Bindable RelayCommand. _rvm.Commands.Add = ScriptCommands.ExecuteMethod("{RootVM}", "AddNumber", new object[] { "{Parameter}" }, ScriptCommands.PrintDebug("{Parameter} Added.")); //Not necessary use ExecuteMethod, as one can define their own commands. }