c# - MVVM交叉特征

标签 c# android xamarin mvvmcross

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

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

  2. 有没有办法直接从我的 View 模型访问控件(任何控件 - 按钮、编辑文本字段)的属性?也许您可以解释通过 View 模型处理控制事件的最佳实践?

提前致谢。

最佳答案

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

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

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

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

关于c# - MVVM交叉特征,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984395/

相关文章:

java - ConcurrentHashMap在平板电脑和Nexus中的性能差异

android - 如何从 C++ 文件访问 $(TARGET_ARCH)?

xamarin - 如何在 Xamarin.Forms 上使用 Android AutoCompleteTextView

c# - SSAS 中计算成员的性能

c# - 在 C# 中将 HTML 元素导出到 Excel

c# - 在 .net 框架中测试

c# - 在Hashtable中打印的顺序?

java - 来电弹出错误 : Unable to add window android. view.ViewRootImpl$W@e5b2272 -- 窗口类型 2003 的权限被拒绝

c# - 将 .Net int 数组转换为 Java.Lang.Object

android - 在 Rider IDE 中设置 Android Xamarin 解决方案未检测到框架