Xamarin RelayCommand不起作用

时间:2018-05-31 18:21:32

标签: xamarin.forms mvvm-light

我有一个使用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 :(得分:1)

我认为您缺少将BindingContextPage的{​​{1}}设置为StackLayout

例如

ViewModel

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

顺便说一下,您不需要将<StackLayout.BindingContext> <viewModels:MainViewModel/> </StackLayout.BindingContext> 添加到MvvmLight项目中,因为Xamarin.Forms拥有自己Xamarin.Forms的实施方式。您只需使用ICommand

即可