コード例 #1
0
        public DelegateCommand <TParameter> CreateCommand <TCommandType>()
            where TCommandType : class, ICommand <TParameter>
        {
            TCommandType cmd = Activator.CreateInstance(typeof(TCommandType)) as TCommandType;

            return(new DelegateCommand <TParameter>(p => cmd.Execute(p), p => cmd.CanExecute(p)));
        }
コード例 #2
0
        public DelegateCommand <TParameter> CreateCommand <TCommandType>(params object[] args) where TCommandType : class, ICommand <TParameter>
        {
            TCommandType cmd = Activator.CreateInstance(typeof(TCommandType), args) as TCommandType;

            DelegateCommand <TParameter>    delegateCommand = new DelegateCommand <TParameter>(p => cmd.Execute(p), p => cmd.CanExecute(p));
            INotifyParametersChangedCommand notifyParametersChangedCommand = cmd as INotifyParametersChangedCommand;

            if (notifyParametersChangedCommand != null)
            {
                WeakEventManager <INotifyParametersChangedCommand, EventArgs> .AddHandler(notifyParametersChangedCommand, nameof(notifyParametersChangedCommand.ParametersChanged), (sender, eventArgs) => delegateCommand.RaiseCanExecuteChanged());
            }

            return(delegateCommand);
        }