我是Xamarin的新手。通过学习MVVM模式,我有了用命令映射按钮并在viewmodel中处理逻辑事物的想法。
然后情况发生了变化。 在为移动应用开发一些登录功能时,我需要在点击时调用“ DisplayAlert” 或“ pop” 或“ push” 按钮。
我检查了一些论坛和博客以了解如何解决,如下所示:
这个问题应该改为“如何选择按钮实现,处理程序或命令”吗?
但是同样,MVVM不建议使用“处理程序”。现在我很困惑。
任何建议都会有所帮助。
干杯。
答案 0 :(得分:0)
尽管您使用了MVVM。使用use命令会更好,因为如果您在后面的代码中使用click事件,它将破坏MVVM的标准(我们应尽快处理ViewModel中的逻辑)。
您可以处理ViewModel中的逻辑并在xaml中传递参数。
例如,如果要传递内容页面并在ViewModel中获得导航
在xaml中
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Name="MainContentPage"
x:Class="xxx.MainPage">
//...
<Button Command="{Binding Path=BindingContext.ButtonClickCommand , Source={x:Reference MainContentPage}}" CommandParameter="{Binding .}" Text="xxx"/>
...
在ViewModel中
ButtonClickCommand = new Command(
(parameter) =>
{
var page = parameter as ContentPage;
// do something you want
});