【发布时间】:2019-06-07 22:39:42
【问题描述】:
我正在使用 Xamarin 和 MvvmCross 开发一个 Android 应用程序。从这个问题底部发布的布局中可以看出,我有一个TextView 和一个Button。
我想实现以下几点:
将按钮的 OnClick 监听器绑定到
onClikCommand方法,如下面的代码所示。当调用
onClikCommand时,我希望TextView的 Text 属性的值会根据 if 语句的评估而改变。通过定制的 EventHandler 和 EventArgs 广播评估值。
关于绑定部分,我看了好几篇教程,发现有些开发者在使用
ICommand interface and Command in the property of UI-Command,
有些人正在使用
local:Mvx
我的问题是,这两种绑定有什么区别?在哪种情况下首选它们?
code_VM : IMvxNotifyPropertyChanging
public event EventHandler<ValidPlayValueEventArgs> ValidPlayValueEventHandler;
public ICommand onClikCommand {get; private set;}
public isValidPlayValue {get; private set;}
public VM() {
onClikCommand = new Command<string, string, string>(isValidPlay);
}
public class ValidPlayValueEventArgs : EventArgs {
public isValidPlay {get; private set;}
public ValidPlayValueEventArgs(bool isValid) {
isValidPlay = isValid;
}
}
public void isValidPlay(string p1, string p2, string p3) {
if (p1 && p2 && P3) {
isValidPlayValue = true;//<----I expect this to update/set value in the textview!! true??
ValidPlayValueEventHandler(this, new ValidPlayValueEventArgs(true));
} else {
isValidPlayValue = false;//<----I expect this to update/set value in the textview!! true??
ValidPlayValueEventHandler(this, new ValidPlayValueEventArgs(false));
}
}
布局
<TextView
Command="{Binding isValidPlayValue}"
<Button
Command="{Binding onClikCommand}"
【问题讨论】:
标签: android mvvmcross icommand mvxbind