- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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/
我是一名优秀的程序员,十分优秀!