public UIGenericCommand(Action <T> commandAction, Func <T, bool> canExecute = null)
        {
            if (commandAction == null)
            {
                throw new ArgumentNullException(nameof(commandAction));
            }

            m_CommandAction = new WeakAction <T> (commandAction);

            if (canExecute != null)
            {
                m_CanExecute = new WeakFunc <T, bool> (canExecute);
            }
        }