0

这实际上是一件微不足道的事情,但是,我已经多次碰到它,并且每次新的时间都花费大量时间来找出为什么这种简单的属性绑定(使用 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 创建目标绑定”消息。

4

1 回答 1

0

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

protected string SomeValue
{
    get; set;
}

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

祝你好运!

于 2013-06-29T19:34:10.537 回答