gpt4 book ai didi

c# - 如何在 Android 中绑定(bind)事件 (MvvmCross)

转载 作者:行者123 更新时间:2023-11-30 03:06:13 25 4
gpt4 key购买 nike

我正在使用 MvvmCross 在 Xamarin 中构建一个跨平台应用程序,我已经在我的核心中声明了我的 ViewModel,并且首先在我的 Windows 8 项目上工作,这要感谢 Stuart Lodge 之前用这个 link 回答了我,我可以这样绑定(bind)页面的 Loaded 事件(使用 Interactivity dll):

<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding MyICommandThatShouldHandleLoaded}" />
</i:EventTrigger>
</i:Interaction.Triggers>

我如何在 Android 中使用 MvvmCross 做同样的事情?

谢谢!

最佳答案

你能说出你在 loaded 事件上试图完成什么吗?

在尝试实现 View 模型时,通常我不想从 UI 的角度考虑。

UI 的工作方式可能因平台而异。

实现 View 模型时的一种思考方式是认为您将希望使用 View 模型进行测试,而无需使用 UI。在这种情况下,您的应用程序应该能够在没有附加 UI 的情况下运行。如果您需要用户输入(如用户名和密码),您编写的测试代码将设置 View 模型的属性,类似于当 UI 绑定(bind)到这些属性时数据绑定(bind)的方式:

loginViewModel.Username = "admin";
loginViewModel.Password = "12345";

例如,在您提供的链接中,我不确定为什么需要了解主窗口加载事件才能显示登录屏幕。

主窗口对应的MainViewModel可以调用

pulic class MainViewModel : MvxViewModel
{
public void Init()
{
ShowViewModel<LoginViewModel>();
}
}

这只是一个例子,它可能不太好,但我只是想展示一种不同的方式。

请记住,从 View 模型的角度来看,ShowViewModel 的意义不大。

View 模型只是调用以显示另一个 View 模型,它“以某种方式”连接到 View 。它可能意味着显示一个弹出窗口,或导航到另一个页面/窗口等。 View 模型不需要知道。这主要是因为 UI 在每个平台上的工作方式可能不同,或者说每个平台上的 UI 要求可能不同(因为 UI 模式可能不同)。

MvvmCross 有一个很好的方法来绕过默认的 ShowViewModel 行为(通过编写特定于平台的自定义演示器)。基本上,您可以控制如何在平台上执行 View 模型类型的 ShowViewModel 请求。

关于c# - 如何在 Android 中绑定(bind)事件 (MvvmCross),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21770030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com