Это метод, который я хочу запустить в своем коде с помощью пакета ComunityToolkit.MVVMpackage. Моя модель представления
[RelayCommand]
public async Task CreateBookingCommand()
{
await Shell.Current.GoToAsync(nameof(BookingCreate));
}
мой взгляд
<Button Text = "Place Request" Grid.Row = "1" Padding = "10" CommandParameter = "{Binding .}"
Command = "{Binding CreateBookingCommand}"/>
и это ошибка, которую я получаю, когда запускаю в режиме отладки.
Severity Code Description Project File Line Suppression State Error (active) XFC0045 Binding: Property "CreateBookingCommand"
Насколько я понимаю, пакет самородков должен автоматически генерировать триггер свойства, но, похоже, этого не происходит. Я использую .NET 8 и версию 8.2.2 пакета CommunityToolkit.MVVM.
Согласно атрибуту RelayCommand, когда вы RelayCommand
атрибут метода, например CreateBooking
, он генерирует такую команду:
private RelayCommand? createBookingCommand;
public IRelayCommand CreateBookingCommand => createBookingCommand ??= new RelayCommand(CreateBooking);
Итак, вам нужно всего лишь удалить суффикс Command
из имени метода, и он работает.
[RelayCommand]
public async Task CreateBooking()
{
......
или поскольку это асинхронные методы, добавить суффикс Async
кажется лучше, тоже работает
[RelayCommand]
public async Task CreateBookingAsync()
{
......
Для получения дополнительной информации обратитесь к атрибуту RelayCommand.
Рад, что это помогает! Приятного кодирования!