gpt4 book ai didi

xamarin.ios - MvvmCross 中的警报或弹出窗口

转载 作者:行者123 更新时间:2023-12-03 07:45:06 24 4
gpt4 key购买 nike

MvvmCross 是否支持用于显示警报或弹出窗口的跨平台解决方案?

搜索代码我找到了MvxDialogActivityView,但它已被注释掉。目前情况还会如此吗?

如果没有直接支持,您建议如何最好地做到这一点? (也许 ViewModel 会更改属性并调用 FirePropertyChanged,以便 View 能够意识到这一点并显示警报。)

2012 年 6 月 16 日 16:04 编辑

针对这个具体案例,我尝试做的事情如下:在页面上单击一个按钮,这会导致 ViewModel 中运行一个方法,该方法会进行评估以确定应向客户显示两条消息中的哪一条。该消息将显示为警报或弹出窗口( native 的,或者最好完全由我设计)。该消息将在(单击“确定”按钮,最好是 3 秒)后消失。

消息被消除后,也会导航一个新页面(取决于显示的两条消息中的哪一条)。

最佳答案

如何处理这个问题绝对取决于具体情况 - 没有单一的最佳规则(恕我直言)

对于一般错误显示模式,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)或使用 ViewModel 公开并由其 View 使用的普通 C# 事件

On the page a button is clicked, which causes a method to run in the ViewModel

我将使用绑定(bind)到按钮 Click/Tap/TouchDown 的 ICommand 来实现此目的

which does an evaluation to determine which of two messages should be shown to the customer.

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

这将从 ViewModel 中调用 - 结果/决策可能会导致某些属性或私有(private)字段状态更改。

View 如何决定显示消息?我能想到 3 个选择:

  1. View 可以只响应属性更改(正常的 Mvvm INPC) - 这是我的偏好
  2. ViewModel 可以公开它触发的普通 C# 事件...
  3. ViewModel 可以发送消息

最后一个选项(消息传递)可能是这里最灵活的解决方案 - 它解耦了 View 和 ViewModel,以防您稍后决定更改职责。要实现消息传递,可以:

The message would be shown as an alert or popup (either native, or preferably totally styled by me).

这是一个 View 问题 - 因此将完全由 View 项目控制。我会使用如下控件:UIAlert、Toast、ToastPrompt 等 - 所有这些都可以设置样式

The message would fade after (the click of the OK button, or preferably 3 seconds). After the message has been dismissed...

我会在 View 中使用某种形式的代码隐藏(或者可能是 WP7 中的行为)。这将检测点击/淡出/消失,然后调用 ViewModel 上的 ICommand(我的偏好)或公共(public)方法

a new page will be navigated too

此导航将从 ViewModel 请求

(depending on which of the two messages was shown).

通过上述流程很容易跟踪...大概 ViewModel 已经知道要显示什么。

<小时/>

所以这就是我要做的......

  • 它将应用程序流逻辑保留在 ViewModel(及更低版本)内
  • 它将演示文稿保留在 View 内

...但我确信还有其他选择:)

<小时/>

最后一点...淡出然后导航逻辑可能会因 WP7 和 Android 上的切换/逻辑删除而变得“困惑” - 这对于您的特定场景可能很重要,也可能无关紧要。

关于xamarin.ios - MvvmCross 中的警报或弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11053535/

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