Xamarin RelayCommand не работает - PullRequest
0 голосов
/ 31 мая 2018

У меня есть простой код, использующий RelayCommand MVVM Light nuget, но он не работает, просто хочу нажать кнопку и отобразить сообщение,

Мой код xaml:

 <StackLayout
  Padding="8">
    <Button

        Command="{Binding ConvertCommand}"

        Text="Hello">
    </Button>
</StackLayout>

Моя ViewModel:

public class MainViewModel
{
    public ICommand ConvertCommand { get { return new RelayCommand(ConvertMoney); } }

    public async void ConvertMoney()
    {
        await App.Current.MainPage.DisplayAlert("hello", "hello", "acept");
        return;
    }

}

1 Ответ

0 голосов
/ 01 июня 2018

Я думаю, вам не хватает установки BindingContext вашего Page или StackLayout на ваше ViewModel.

Например

<ContentPage.BindingContext>
    <viewModels:MainViewModel/>
</ContentPage.BindingContext>

или

<StackLayout.BindingContext>
    <viewModels:MainViewModel/>
</StackLayout.BindingContext>

Кстати, вам не нужно добавлять MvvmLight в ваш проект Xamarin.Forms, потому что Xamarin.Forms имеет собственную реализацию ICommand.Вы можете просто использовать Command.

...