【问题标题】:WPF - Prism - Activate and Deactivate views in a ContentControl regionWPF - Prism - 在 ContentControl 区域中激活和停用视图
【发布时间】:2010-12-04 15:30:49
【问题描述】:

在我的应用程序中,我一次只需要一个可见的视图,这就是我在 shell 中使用 ContentControl 的原因。问题是,如果我有一个可见的视图(比如说 View1)并且我激活了 View2,那么到目前为止一切都很好。现在用户按下 View2 上的关闭按钮,之后用户现在最终会看到一个空白屏幕,因为现在没有视图处于活动状态。我想区域适配器会在激活下一个视图之前停用当前活动的视图。

如何确保之前活动的视图再次激活(我的示例中的 View1)?我需要不同类型的区域来实现此功能吗?

提前致谢,

阿里

【问题讨论】:

    标签: wpf prism contentcontrol


    【解决方案1】:

    不幸的是(正如您发现的那样)这不是行为。您必须自己跟踪视图并激活前一个视图。

    Jeremiah 发表评论并让我思考这种行为。我认为 ActiveAware 行为可能是跟踪活动/非活动事件并可能对其采取行动的行为的一个很好的模型。

    这里是 ActiveAware 行为的源代码。你可以使用这个模型作为你想要的行为的起点,我很确定。 http://compositewpf.codeplex.com/SourceControl/changeset/view/26112#496678

    【讨论】:

    • 这就是我目前的做法。你认为自定义区域适配器/行为是否适合这样的事情?
    • 好建议。我会发布一些可能是一个很好的起点的东西。我认为 ActiveAware 行为在逻辑上非常接近。
    • 耶利米,你现在用什么方法来追踪这个?特别是您如何处理其他模块中存在的视图?如果模块 1 中的一个视图被停用,则前一个视图可能存在于模块 2 中。事件聚合或某种服务?最终谁来管理视图列表?谢谢你的建议,我也去看看安德森的想法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多