Xamarin RelayCommand 不起作用

Xamarin RelayCommand doesn't work

我有一个使用 MVVM Light nuget 的 RelayCommand 的简单代码,但无法正常工作,只想按下一个按钮并显示一条消息,

我的xaml代码:

 <StackLayout
  Padding="8">
    <Button

        Command="{Binding ConvertCommand}"

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

我的视图模型:

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

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

}

我认为您没有将 PageStackLayoutBindingContext 设置为 ViewModel

例如

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

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

顺便说一下,您不需要将 MvvmLight 添加到您的 Xamarin.Forms 项目中,因为 Xamarin.Forms 有自己的 ICommand 实现。您可以简单地使用 Command.