gpt4 book ai didi

wpf - 将模型的单个实例传递给同一模块中的多个 View 模型以获取不同的 View

转载 作者:行者123 更新时间:2023-12-03 10:24:21 25 4
gpt4 key购买 nike

我正在使用 PRISM 开发一个项目,在该项目中,我将导航实现为 TreeView ,并且任何单击事件都会发生使用事件聚合引发事件的注册模块,该模块具有用于多个 View 的多个 View 模型(如 Wizard Applicaiton,您可以在其中浏览多个 View 收集数据)。我想要一个通用的或共享的或单例模型,它可以在此 View 模型中传递并在最后保存....用户可以随时单击任何导航的任何链接,它应该将数据保存到这个暴露的单例模型中通过不同的 View 模型。您是否有任何正在执行此类操作的示例……或者您可以快速输入一个关于如何执行此操作的示例吗?或者根本不可能做到这一点。我正在遵循 Brian Lagunas 的 Pluralsight Video for PRISM 中的所有模式,因此请尝试使用这种方式....

最佳答案

我会有一个 MasterViewModel它控制“向导”页面和当前状态

它将包含以下属性:

  • List<ViewModelBase> Pages
  • int CurrentPageIndex
  • ViewModelBase CurrentPage ,返回 Pages[CurrentPageIndex]
  • MyClass DataObject
  • MasterViewMasterViewModel 一起使用只不过是一个 ContentControl它是 Content绑定(bind)到 CurrentPage .我可能还会定义 DataTemplatesMasterView告诉 WPF 哪个 View用哪个 Page 绘制

    您的 MasterViewModel将负责处理页面,并为每个页面传递对其所需数据的引用。例如在构造函数中它可能会说,
    public MasterViewModel(MyClass dataObject)
    {
    DataObject = dataObject;

    Pages.Add(new InfoPage(DataObject));
    Pages.Add(new AddressPage(DataObject.Addresses));
    Pages.Add(new PhonePage(DataObject.Phones));
    Pages.Add(new SaveMyClassPage(DataObject));

    CurrentPageIndex = 0;
    }

    我有一个例子 here如果你有兴趣

    关于wpf - 将模型的单个实例传递给同一模块中的多个 View 模型以获取不同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101298/

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