Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVMCross功能_C#_Android_Xamarin_Mvvmcross - Fatal编程技术网

C# MVVMCross功能

C# MVVMCross功能,c#,android,xamarin,mvvmcross,C#,Android,Xamarin,Mvvmcross,我是MVVMCross的新手,我想知道是否有专家能回答我的几个问题 我想在我的android设备上处理我的虚拟键盘(自定义键盘(类似于android键盘),只在一个有焦点的edittextfield上键入。我不知道怎么做 有没有一种方法可以直接从我的viewmodel访问控件(任何控件按钮、edittextfield)的属性?也许您可以解释一下通过viewmodels处理控件事件的最佳实践 提前谢谢 不知道你到底是什么意思 不,这在设计上是而且不应该是可能的。 ->您不应具有从ViewModel

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

  • 我想在我的android设备上处理我的虚拟键盘(自定义键盘(类似于android键盘),只在一个有焦点的edittextfield上键入。我不知道怎么做

  • 有没有一种方法可以直接从我的viewmodel访问控件(任何控件按钮、edittextfield)的属性?也许您可以解释一下通过viewmodels处理控件事件的最佳实践

  • 提前谢谢

  • 不知道你到底是什么意思
  • 不,这在设计上是而且不应该是可能的。 ->您不应具有从ViewModel到视图的任何直接访问权限。这两个元素之间的连接是使用数据绑定完成的。这意味着,无论何时您想要访问控件的属性,都要为此公开ViewModel上的属性,并在视图中将它们绑定在一起
  • 例如,当您想访问EditText的“Text”属性时。然后在ViewModel上创建一个属性(例如YourTextProperty),然后使用数据绑定。 在Android上,这将类似于:

    <EditText local:MvxBind="Text YourTextProperty" />
    
    
    
    当控件更改此值时,MvvmCross绑定引擎将自动执行属性的setter…

    谢谢您的回复


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

    要将mvvmcross绑定扩展到新控件和新事件,您还可以在n+1视频中看到自定义控件和自定义绑定教程-