C# 以下方法或属性之间的调用不明确:';MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions
我正在用MvvmCross编写一个简单的Xamarin应用程序。我只是试着做一些绑定,但compliler给了我这个错误 以下方法或属性之间的调用不明确:“MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindingSet(TTarget)”和 'MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindingSet(TTarget)**。此错误在C# 以下方法或属性之间的调用不明确:';MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions,c#,xamarin,xamarin.ios,mvvmcross,monodevelop,C#,Xamarin,Xamarin.ios,Mvvmcross,Monodevelop,我正在用MvvmCross编写一个简单的Xamarin应用程序。我只是试着做一些绑定,但compliler给了我这个错误 以下方法或属性之间的调用不明确:“MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindingSet(TTarget)”和 'MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindi
var集合中抛出=
此参数为.CreateBindingSet()代码>
我在Xamarin.iOS项目中添加了MvvmCross、MvvmCross.Binding、MvvmCross.Platform和MvvmCross.Core
请帮助排除此错误。以下是我的ViewController的代码:
using Kinettix.Core.ViewModels;
using MvvmCross.Binding.BindingContext;
using MvvmCross.Platforms.Ios.Views;
using UIKit;
namespace Kinettix.iOS.Views
{
public partial class LoginViewController : MvxViewController<LoginViewModel>
{
public LoginViewController() : base("LoginViewController", null)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
this.NavigationController.NavigationBarHidden = true;
var set = this.CreateBindingSet<LoginViewController, LoginViewModel>();
set.Apply();
tfUsername.ShouldReturn+= (sender) =>
{
sender.ResignFirstResponder();
return false;
};
tfPassword.ShouldReturn += (sender) =>
{
sender.ResignFirstResponder();
return false;
};
}
public override void DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
// Release any cached data, images, etc that aren't in use.
}
}
}
使用Kinettix.Core.ViewModels;
使用MvvmCross.Binding.BindingContext;
使用MvvmCross.Platforms.Ios.Views;
使用UIKit;
命名空间Kinettix.iOS.Views
{
公共部分类LoginViewController:MvxViewController
{
public LoginViewController():base(“LoginViewController”,null)
{
}
公共覆盖无效ViewDidLoad()
{
base.ViewDidLoad();
this.NavigationController.NavigationBarHidden=true;
var set=this.CreateBindingSet();
set.Apply();
tfUsername.ShouldReturn+=(发件人)=>
{
sender.ResignFirstResponder();
返回false;
};
tfPassword.ShouldReturn+=(发件人)=>
{
sender.ResignFirstResponder();
返回false;
};
}
公共覆盖无效DidReceiveMemoryWarning()
{
base.DidReceiveMemoryWarning();
//释放所有未使用的缓存数据、图像等。
}
}
}
好的。我已经找到了我问题的答案。我的iOS项目中有MvvmCross.Core、MvvmCross.Platform、MvvmCross.binding和MvvmCross。它抱怨MvvmCross和MvvmCross.Binding之间对CreateBindingSet的调用不明确。我删除了所有软件包,只安装了MvvmCross。通过这种方式,它使用MvvmCross调用了CreateBindingSet,并且成功了。:) 奇怪,这应该行得通。通常不同的是:base(nameof(LoginViewController),null),而不是传递字符串。但不确定它是否能解决问题。更改为base(nameof(LoginViewController),null);但是没有解决问题。MvvmCross.Platform软件包的版本号是多少?LoginViewModel是否绑定到任何其他ViewController,是否有多个LoginViewModel?版本为5.7.0,LoginViewModel未绑定到任何其他ViewController。我只有一个LoginViewController。其他nuget包MvvmCross、MvvmCross.Binding和MvvmCross.Core的版本号是多少?好的,那么您只有一个LoginView控制器,并且您有多个LoginView模型吗?