Я использую пакет NuGet Microsoft.Toolkit.Mvvm вместе с Пакет Microsoft.Xaml.Behaviors.Wpf Nuget.
Мне удалось запустить раскадровку с помощью в , определив и установив RoutedEvent равным имени подключенного события.
Однако, насколько мне известно, , не существует способа вызвать ICommand, используя что-либо, предусмотренное в . Я имею в виду, что нет ничего, что я мог бы использовать в теле блока (аналогично ), что приведет к созданию ICommand.
В соответствии с примером «Минимальный, полный и проверяемый», чтобы продемонстрировать, чего я пытаюсь достичь, вы можете сослаться на проект на GitHub — https://github. com/AbbottWC/MCVE_AttachedEventFailure.
Или
- Откройте Visual Studio. Создайте приложение WPF (с таргетингом на .Net Core 3.1)
- Инструменты -> Диспетчер пакетов NuGet -> Управление пакетами для этого решения
- Добавьте пакеты Microsoft.Toolkit.Mvvm (для класса RelayCommand) и Microsoft.Xaml.Behaviors.Wpf.
- В App.Xaml.cs
Код: Выделить всё
private RelayCommand testCommand = new RelayCommand(( ) => MessageBox.Show("Event Captured!", "Success!")); public RelayCommand TestCommand => testCommand;
- В файле MainWindow.xaml
- Определите пространство имен xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
- Переименовать локально< /code> to l
- Добавьте следующее в тело XAML перед закрытием тег:
Код: Выделить всё
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/697 ... venttrigge