C# 以下方法或属性之间的调用不明确:';MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions

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

我正在用MvvmCross编写一个简单的Xamarin应用程序。我只是试着做一些绑定,但compliler给了我这个错误

以下方法或属性之间的调用不明确:“MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindingSet(TTarget)”和 'MvvmCross.Binding.BindingContext.MvxBindingContextOwnerExtensions.CreateBindingSet(TTarget)**。此错误在
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模型吗?