Data binding MvvmCross公用绑定不起作用

Data binding MvvmCross公用绑定不起作用,data-binding,touch,xamarin,mvvmcross,Data Binding,Touch,Xamarin,Mvvmcross,这实际上是一件非常琐碎的事情,但是,我已经多次碰到它,每次都要花费大量的时间来找出为什么这样简单的属性绑定(使用MvvmCross)不起作用!所以,我希望这对任何人都有帮助 情况(相当简单): (仅具有某些属性的视图我将绑定到ViewModel(在本例中为触摸) 公共类MyView:MvxViewController { 保护字符串值 { 获得;设置; } 私有void SomeInitializationMethod() { var set=this.CreateBindingSet(); /

这实际上是一件非常琐碎的事情,但是,我已经多次碰到它,每次都要花费大量的时间来找出为什么这样简单的属性绑定(使用MvvmCross)不起作用!所以,我希望这对任何人都有帮助

情况(相当简单): (仅具有某些属性的视图我将绑定到ViewModel(在本例中为触摸)

公共类MyView:MvxViewController
{
保护字符串值
{
获得;设置;
}
私有void SomeInitializationMethod()
{
var set=this.CreateBindingSet();
//绑定到“此”
set.Bind().For(x=>x.SomeValue).To(x=>x.ViewModelSomeValue);
set.Apply();
}
}

因此,在本例中,属性没有绑定,您可以看到“未能为从ViewModelSomeValue到CurrentContacts创建目标绑定”消息。

因此,问题的原因只是一些简单的词:public”。 由于MvvmCross使用反射进行数据绑定,它希望绑定到的属性是公共的,并诚实地说“我无法访问它”

这在我身上发生了好几次,只是因为使用了Resharper,它自动将属性修饰符添加到“受保护的”

祝你好运

public class MyView : MvxViewController
{
    protected string SomeValue
    {
        get; set;
    }

    private void SomeInitializationMethod()
    {
        var set = this.CreateBindingSet<MyView, MyViewModel>();
        // binding to "this"
        set.Bind().For(x => x.SomeValue).To(x => x.ViewModelSomeValue);
        set.Apply();
    }
}
protected string SomeValue
{
    get; set;
}