如何在xamarin.forms中对同一工具栏项使用2个命令



ToolbarItems.Add(new ToolbarItem("Save", null, () => (BindingContext as AddPersonViewModel).SaveCommand.Execute(null)));,这就是我的工具栏项目代码。每次我按下Save btn然后Save命令。

我想在这个按钮上再加一个命令。我想每次我点击保存按钮1保存数据,然后导航到另一个页面!我怎么能做到呢?由于

(您只能将一个命令绑定到支持iccommand的XForms中的工具栏项或任何控件)

用另一个命令聚合两个命令

public ICommand SaveAndNavigateCommand {
get{
   return new Command(()=>{
       SaveCommand.Execute(null);
       NavigateCommand.Execute(null);
   });
}
}

用另一个命令聚合两个命令

导航命令取决于你使用的MVVM框架。如果不使用,则代码将如下所示:

class AddPersonViewModel{
readonly INavigation _navigation;
public AddPersonViewModel(INavigation navigation){
   _navigation = navigation;
}
public ICommand NavigateCommand {
get{
   return new Command(()=>{
       _navigation.PushAsync(new ContentPage()); //Insert here page that you want navigate to 
   });
}
}
}

然后,当创建视图模型时,假设您在页面类中创建它:

class AddPersonPage: Page{
    public AddPersonPage(){
        InitializeComponent();
        this.BindingContext = new AddPersonViewModel(this.Navigation);
    }
}

最新更新