1

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

  1. 我想在我的 android 设备上处理我的虚拟键盘(自定义键盘(类似于 android 键盘)只在一个有焦点的编辑文本字段中键入。我不知道该怎么做。

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

提前致谢。

4

2 回答 2

3
  1. 不知道你在这里到底是什么意思?
  2. 不,这在设计上是不可能的,也不应该是可能的。-> 你不应该从 ViewModel 直接访问你的 View。这两个元素之间的连接是使用 DataBinding 完成的。这意味着每当您想要访问控件的属性时,请为此在您的 ViewModel 上公开一个属性并将它们绑定到视图中。

例如,当您想要访问 EditText 的“文本”属性时。然后在您的 ViewModel 上创建一个属性(例如 YourTextProperty),然后使用 DataBinding。在 Android 上,这会是这样的:

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

当控件确实更改此值时,MvvmCross Binding-Engine 将自动执行您的属性的设置器...

于 2013-09-24T21:14:27.440 回答
0

谢谢回复。

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

于 2013-09-25T07:54:34.003 回答