如何使用MVVMCross从. droid中的view.cs检测. core中的点击事件
本文关键字:core 事件 检测 cs MVVMCross 何使用 droid view 中的 | 更新日期: 2023-09-27 18:16:44
我目前正在一个登录屏幕上工作,我希望一个ImageView在"登录"按钮点击和动画旋转时变得可见。我知道如何动画对象,但由于动画是一个独特的android功能,我必须启动它从LoginView.cs在。droid项目,例如一个函数,而不是简单地从LoginViewModel在。core项目。
我知道如何在。core(和其他mvxbindings)中处理LoginViewModel.cs中的MvxCommands,但我不知道如何使。droid中的LoginView.cs检测此点击事件并从那里播放动画。换句话说,我如何使LoginView.cs在。droid检测任何变化发生在LoginViewModel.cs在。core ?我在谷歌上搜了好几个小时都没找到。这可能吗?天赐良方。
Thanks in advance
处理ViewModel -> View通信的最简单方法是使用Func/Action委托。在接受委托的VM中设置属性,然后在视图中分配该委托。然后,您可以从虚拟机调用委托。
类似:
public class ViewModel {
public Action ClickDelegate { get; set; }
public ICommand ClickCommand {
get { return new MvxCommand(() => {
// call the action method to start animation
ClickDelegate?.Invoke();
};
}
}
}
public class MyView {
protected override OnCreate() {
// register delegate with VM
ViewModel.ClickDelegate = () => { StartAnimation(); };
}
}