我有一个使用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;
}
}
答案 0 :(得分:1)
我认为您缺少将BindingContext
或Page
的{{1}}设置为StackLayout
。
例如
ViewModel
或
<ContentPage.BindingContext>
<viewModels:MainViewModel/>
</ContentPage.BindingContext>
顺便说一下,您不需要将<StackLayout.BindingContext>
<viewModels:MainViewModel/>
</StackLayout.BindingContext>
添加到MvvmLight
项目中,因为Xamarin.Forms
拥有自己Xamarin.Forms
的实施方式。您只需使用ICommand
。