在MvvmCross警报或弹出窗口(Alerts or Popups in MvvmCross)

2019-07-29 22:45发布

是否MvvmCross支持显示警报或弹出式广告一个跨平台的解决方案吗?

搜索代码,我发现MvxDialogActivityView ,但它已被注释掉。 将保持这样的话,现在?

如果没有直接的支持,你会怎么认为这是最好的呢? (也许将视图模型更改属性和调用FirePropertyChanged ,以便查看会意识到这一点,并显示一个警告。)

编辑16:04 2012年6月16日

我试图为这一特定情况下做的是如下:在网页上的按钮被点击,这将导致在其中做一个评估,以确定哪两个消息应该显示给用户的视图模型运行的方法。 该消息将被显示为警报或弹出(是天然的,或者优选地完全由我风格)。 消息将褪色(OK按钮的点击,或优选3秒)之后。

该消息已被解雇后的新页面也将被导航(取决于两个消息被证明)。

Answer 1:

如何处理这肯定要看是什么情况 - 没有单一的最好的规则(恕我直言)

对于一般的错误显示模式,有一个建议,在http://slodge.blogspot.co.uk/2012/05/one-pattern-for-error-handling-in.html

我已经使用了类似的模式用于显示应用级别的通知 - 例如,当在一个聊天消息到达或长时间运行的操作完成或...

有关如何显示消息框,一个有趣的帖子是: http://awkwardcoder.blogspot.co.uk/2012/03/showing-message-box-from-viewmodel-in.html -我不知道我完全倒是按照端到端的解决方案,但肯定有一些好点有什么不该做。


对于更新的情况下,我会考虑使用一个信使(如TinyMessenger),或者使用由视图模型暴露,并通过其观点消耗普通的C#事件

在一个按钮被点击的页面,这会导致在视图模型运行的方法

我会实现这个使用一个ICommand绑定到按钮点击/点/ TouchDown的

其确实的评估,以确定哪些两个消息的应显示给客户。

我肯定会在服务中实现逻辑

这会从视图模型被称为 - 和结果/决定可能会造成一定的财产或私人领域的状态变化。

如何查看,然后决定显示的消息? 我能想到的3个选项:

  1. 该视图可以只应对一个属性更改(正常MVVM INPC) - 这将是我的偏好
  2. 该视图模型可能暴露其触发一个普通的C#事件...
  3. 该视图模型可以发送邮件

最后一个选项(信使)可能是这里最灵活的解决方案 - 它能够消除的情况下查看和视图模型您稍后决定更改的责任。 为了实现信使,或者:

  • 实现自己的集线器(就像我在错误做http://slodge.blogspot.co.uk/2012/05/one-pattern-for-error-handling-in.html )
  • 或使用像TinyMessenger一个通用的解决方案

该消息将被显示为警报或弹出(是天然的,或者优选地完全由我风格)。

这是一个查看担忧 - 这样会被查看项目完全控制。 我使用的控制,如:UIAlert,吐司,ToastPrompt,等等 - 所有这些都可以称呼

消息将褪色(OK按钮的点击,或优选3秒)之后。 之后该消息已被解雇......

我会使用的视图(或者一个在WP7行为)背后的一些形式的代码。 这将检测到点击/淡入/消失,然后将调用任何一个ICommand的视图模型(我的偏好)或公共方法

一个新的页面也会被导航

此导航将从视图模型请求

(取决于这两个消息的被示出)。

这将是很容易通过上述流程跟踪......想必视图模型已经知道要显示什么。


所以,这就是我会做...

  • 它保持的ViewModels内的应用程序流程逻辑(或更低)
  • 它使视图内呈现

......但我敢肯定还有其他的选择:)


通过打开WP7和Android /墓碑的最后一个音符...淡出,然后导航逻辑才能真正得到“搞砸了” - 这可能会或可能无所谓您的特定场景。



文章来源: Alerts or Popups in MvvmCross