如何使用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

如何使用MVVMCross从. droid中的view.cs检测. core中的点击事件

处理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(); };
    } 
}