前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prism 中如何判断界面当前是否显示

Prism 中如何判断界面当前是否显示

作者头像
独立观察员
发布2024-05-22 20:28:58
790
发布2024-05-22 20:28:58
举报

Prism 中如何判断界面当前是否显示

独立观察员 2024 年 5 月 15 日

一、常规的导航界面

首先 VM 基类继承 WPFTemplateLib 的 ObservableObject:

然后在 VM 基类中添加 public bool IsVisible { get; set; }

在 RegionViewModelBase(实现了 IConfirmNavigationRequest 接口)的 OnNavigatedFrom 方法(离开)中赋值 false,在 OnNavigatedTo 方法(到达)中赋值 true:

这样基本就行了,必要时可触发虚方法来通知子类。

属性变动监测:

触发虚方法:

二、TabControl 中的情况

新建一个 VM 基类 TabContentViewModelBase ,专门给 Tab 页面使用。主要有 是否被选中(IsSelected)以及 父级是否可见(IsParentVisible)两个属性,监测它们的变动,只有在两者都为 true 时表明该 Tab 页处于可见状态:

虚方法 OnTabContentVisibleChanged 中默认已经设置了 IsVisible 的值,所以按理说会走第一节中相关变动监测的逻辑,不过目前有遇到过子类的 IsVisibleChanged 未被触发,所以保险起见也可以在子类中直接使用 OnTabContentVisibleChanged 进行可见性判断:

那么,是否被选中(IsSelected)以及 父级是否可见(IsParentVisible)两个属性是怎么变化的呢?

首先是 IsSelected,它绑定了 TabItem 的 IsSelected:

然后是 IsParentVisible,它需要在父级的可见性变化时同步修改:

这样就形成了逻辑闭环。

原创文章,转载请注明: 转载自 独立观察员 (dlgcy.com)

本文链接地址: [Prism 中如何判断界面当前是否显示](https://dlgcy.com/prism-judge-screen-is-show-or-not/)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 独立观察员博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Prism 中如何判断界面当前是否显示
  • 一、常规的导航界面
  • 二、TabControl 中的情况
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档