gpt4 book ai didi

events - PRISM:使用 PopupRegions 从父 View /VM 传递对象/事件

转载 作者:行者123 更新时间:2023-12-02 00:25:54 25 4
gpt4 key购买 nike

我们正在开发一个应用程序,该应用程序使用 Prism 和 MVVM 进行医疗保健跟踪操作。

在此应用程序中,我们注册了主要区域中的 View ,以及单击网格中的单元格(在本例中为 xamdatagrid - Infragistics)将通过 Prism 区域弹出行为构造启动另一个区域的场景。

因此,当我们单击单元格时,将调用该 View 背后代码中的单元激活操作,然后调用 View 模型中的方法以 .RequestNavigate 到为“辅助”弹出区域注册的 View (从而在现有应用程序上启动看似对话的内容。

我试图将对象从父 View (网格中记录的值)传递到在弹出窗口中启动的 subview ,但发现预期的操作均无效。

我有一个调解器对象,我们用它来将信息从子级传递回父级,但这在另一个方向上不起作用,因为调解器的发布/通知操作要求 subview “已经”在 parent 发布以传递该信息。

我发现 Prism.Events 类中内置的事件聚合器结构似乎也不起作用(我假设是因为相同的发布/订阅问题)。我可以通过父 View 中的事件聚合器发布事件并在 subview 中订阅,但我必须“两次”启动 subview 才能使与事件聚合器操作相关联的事件真正触发。

我知道这是相当模糊的(减去代码),但我正在寻找更多的起点,或者任何遇到相同类型问题的人。子弹点场景如下:

  • 父 View 已在现有区域实例化。
  • 点击父 View 中的单元格实例化(导航到)弹出区域中的 subview 。
  • 同样的点击操作需要将一个对象从父 View 传递给 subview ,以便 subview 可以根据该对象过滤自己的数据。
  • 操作是使用 Prism/MVVM 构建的。

任何帮助、建议、指示、想法都会很棒。

最佳答案

我们有相同的场景,最终创建了一个注入(inject)到我们的 ViewModels 的 UiService。我们的 ViewModel 基类有一个 SetModel 方法,UiService 在导航时调用该方法,用于将参数发送到目标 View 。

举例:

单击现有 View 中的按钮。

Source ViewModel 调用 UiService ShowView(data)。

UiService 为请求的 View 调用 RequestNavigate。

UiService 在目标 ViewModel 上调用 SetModel(通过访问请求 View 的 DataContext)以从源 ViewModel 传入数据。

关于events - PRISM:使用 PopupRegions 从父 View /VM 传递对象/事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8915805/

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