Перемещение RelayCommand (CommandManager) из .Net Framework в .NET Core v3.0.100-preview3 - PullRequest
0 голосов
/ 03 апреля 2019

My RelayCommand включает реализацию CommandManager, которая не известна при предварительном просмотре 3.net core 3. Однако Microsoft говорит, что она доступна: см. Здесь

Dependencies

Я установил / удалил .Net Core и перезапустил Visual Studio 2019 предварительного просмотра, но безуспешно.ОС Windows 10 x64.

    public class RelayCommand : ICommand
        {

            readonly Action<object> _execute;
            readonly Predicate<object> _canExecute;


            public RelayCommand(Action<object> execute) : this(execute, null) { }
            public RelayCommand(Action<object> execute, Predicate<object> canExecute)
            {
                _execute = execute ?? throw new 
                ArgumentNullException("execute"); _canExecute = canExecute;
            }

            [DebuggerStepThrough]
            public bool CanExecute(object parameter)
            {
                return _canExecute == null ? true : _canExecute(parameter);
            }
            public event EventHandler CanExecuteChanged 
            {
                add { CommandManager.RequerySuggested += value; }
                remove { CommandManager.RequerySuggested -= value; }
            }
            public void Execute(object parameter) { _execute(parameter); }

    }

1 Ответ

0 голосов
/ 24 июня 2019

Немного поздно, но кому-то еще может быть выгодно.

Это для таргетинга .NET Core 3.0 Preview 6

Я установил через NuGet в свой проект WPF UI следующее:

Microsoft.NETCore.Platforms Version = "3.0.0-preview6.19303.8"

Microsoft.NETCore.Targets Version = "3.0.0-preview6.19303.8"

Microsoft.WindowsDesktop.App Version = "3.0.0-preview6-27804-01"

System.Windows.Input.CommandManager будет доступен.

У вас уже должен быть SDK, а именно Microsoft.NETCore.App (3.0.0-preview6-27804-01)

...