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

时间:2016-10-06 08:14:02

标签: xamarin xamarin.forms icommand

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

我想再向此按钮添加一个命令。我希望每次单击保存按钮1保存数据,然后导航到其他页面!我怎样才能做到这一点?感谢

(您只能将一个命令绑定到toolbaritem或支持ICommand的XForms中的任何控件。)

1 个答案:

答案 0 :(得分:0)

使用另一个命令

聚合两个命令
public ICommand SaveAndNavigateCommand {
get{
   return new Command(()=>{
       SaveCommand.Execute(null);
       NavigateCommand.Execute(null);
   });
}
}

使用另一个命令

聚合两个命令

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

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);
    }
}