MvvmCross常见绑定不起作用

时间:2013-06-29 19:33:36

标签: data-binding touch xamarin mvvmcross

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

情况(非常简单): (只是具有某些属性的视图我将绑定到ViewModel(在此示例中为Touch))。

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

因此,在这种情况下,属性不绑定,您可以看到“无法创建从ViewModelSomeValue到CurrentContacts 的消息的目标绑定。”

1 个答案:

答案 0 :(得分:0)

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

protected string SomeValue
{
    get; set;
}

因为使用了Resharper,我发生了好几次,并且它自动将属性修饰符添加到“受保护的”。

祝你好运!