MVVMCross功能

时间:2013-09-24 14:28:21

标签: c# android xamarin mvvmcross

我是MVVMCross的新手,我想知道专家是否可以回答我的几个问题。

  1. 我想在我的Android设备上处理我的虚拟键盘(自定义键盘(类似于Android键盘),只能在一个专注的edittextfield上输入。我不知道该怎么做。

  2. 有没有办法直接从我的viewmodel访问控件(任何控件 - 按钮,edittextfield)属性?也许您可以解释通过视图模型处理控制事件的最佳实践?

  3. 提前致谢。

2 个答案:

答案 0 :(得分:3)

  1. 不知道你到底是什么意思?
  2. 不,这是因为设计不可能实现的。 - >您不应该从ViewModel直接访问View。这两个元素之间的连接是使用DataBinding完成的。这意味着只要您想要访问控件的属性,就可以在ViewModel上公开一个属性,并在View中将它们绑定在一起。
  3. 例如,当您想要访问EditText的“Text”属性时。然后在ViewModel上创建一个属性(例如YourTextProperty),然后使用DataBinding。 在Android上,这需要像:

    <EditText local:MvxBind="Text YourTextProperty" />
    

    当控件确实改变了这个值时,MvvmCross Binding-Engine将自动执行你的属性的setter ......

答案 1 :(得分:0)

感谢您的回复。

我实际看到的是我的view.cs中的FindByViewID来获取控件属性和事件,然后将其传递给Viewmodel中的属性,如上所述。