mvvmcross绑定后禁用Xamarin iOS按钮

问题描述:

我有一个绑定到mvxCommand的按钮。绑定后,按钮被禁用。在绑定之前,他已启用。mvvmcross绑定后禁用Xamarin iOS按钮

任何人都可以告诉我为什么会发生这种情况?

笔者认为:

public override void ViewDidLoad() 
     { 
      Debug.WriteLine("VatButton6 = " + VatButton6.Enabled); // this is true 
      var set = this.CreateBindingSet<CreatePaymentView, CreatePaymentViewModel>(); 
      set.Bind(AmountTxt).To(vm => vm.Amount); 
      set.Bind(ReferenceTxt).To(vm => vm.Reference); 
      set.Bind(VatButton6).To(vm => vm.RegisterVatCommand); //CommandParameter("21%"); 
      set.Apply(); 

      Debug.WriteLine("VatButton = " + VatButton6.Enabled); // this is false; 
     } 

我的命令:

public IMvxCommand RegisterVatCommand 
    { 
     get { return new MvxCommand(RegisterVat); } 
    } 

    public void RegisterVat() 
    { 
    // switch (vat) 
    // { 
    //  case "21%": 
    //   Vat = 21; 
    //   break; 
    //  case "6%": 
    //   Vat = 6; 
    //   break; 
    //  case "0%": 
    //   Vat = 0; 
    //   break; 
    //  case "nvt": 
    //   Vat = -1; 
    //   break; 
    //  default: 
    //   throw new ArgumentException("invalid button title"); 
    // } 
    } 

我不能发表评论,但你可以尝试,并删除其他两个绑定

set.Bind(AmountTxt).To(vm => vm.Amount); 
    set.Bind(ReferenceTxt).To(vm => vm.Reference); 

然后测试它是否有效?

我复制了你的代码,它对我来说工作得很好,所以它没有任何问题。