这实际上是非常简单的事情,但是,我已经多次碰到它,每次新的时间花费足够的时间来找出为什么这么简单绑定到属性(使用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 的消息的目标绑定。”
答案 0 :(得分:0)
因此,问题的原因只是一些简单的词:“ public ”。 由于MvvmCross使用反射进行数据绑定,因此它希望绑定到的属性是公开的,并诚实地说“我无法达到它”。
protected string SomeValue
{
get; set;
}
因为使用了Resharper,我发生了好几次,并且它自动将属性修饰符添加到“受保护的”。
祝你好运!