prism journal导航按钮的可用性探索记录
prism使用导航功能的时候,跳了几个坑,记录一下。
1、导航记录的产生,是在区域导航过程中产生的。
_regionManager.Regions[PrismManager.MainViewRegionName].RequestNavigate(obj.NameSpace, back =>
{
journal= back.Context.NavigationService.Journal;
journalHistory();
});
2、通过journal.goback(),journal.goforward()来向前向后。
3、journal.CanGoback和Canforward来确定是否可导。
4、但是如果在命令中使用GobackCommand=new DelegateCommand(Goback,()=>journal.CanGoBack)话就不可以,因为这时候journal还是null。
5、测试成功的方法
private IRegionNavigationJournal journal;
public MainWindowViewModel(IRegionManager regionManager)
{
_regionManager = regionManager;
CreateMenuBar();
NavigateCommand = new DelegateCommand<MenuBar>(Navigate);
GoBackCommand = new DelegateCommand(goback).ObservesCanExecute(() => CanGoBack);
GoForwardCommand = new DelegateCommand(goforward).ObservesCanExecute(() => CanGoForward);
}
private void goforward()
{
journal.GoForward();
journalHistory();
}
private void goback()
{
journal.GoBack();
journalHistory();
}
private void Navigate(MenuBar obj)
{
if (obj == null || string.IsNullOrEmpty(obj.NameSpace)) return;
_regionManager.Regions[PrismManager.MainViewRegionName].RequestNavigate(obj.NameSpace, back =>
{
journal= back.Context.NavigationService.Journal;
journalHistory();
});
}
private void journalHistory()
{
CanGoForward = journal.CanGoForward;
CanGoBack = journal.CanGoBack;
}
因为CanGoBack在运行过程中不停变化,需要在每一次记录中都要作好记录。同时,如果CanExecute要体现在UI同步更新中,需要使用ObserversCanExecute方法。
因为向前向后也是有限的,走到头就不能向前走了,所以需要不断更新。
prism journal导航按钮的可用性探索记录的更多相关文章
- ul、li实现横向导航按钮
好久没写博客了,主要是懒得呼气都不想呼,上周分给我一个新的任务,就是自己新建一个系统,快速极限开发,虽然之前自己也做过小的系统,但毕竟是自己做,随着自己的心意做,没有做其他的限制等,现在呢是给公司做, ...
- iOS 添加导航按钮
iOS设置导航按钮navigationBar中包含了这几个重要组成部分:leftBarButtonItem, rightBarButtonItem, backBarButtonItem, title. ...
- Qt编写导航按钮
做各种各样的界面的时候,经常需要做一排按钮用于切换到对应界面,俗称导航按钮或者导航菜单,参照过各种各样的主界面导航布局,特意编写导航按钮自定义控件,结合各种情况,继承自QPushButton.已集成在 ...
- sencha touch TabPanel 加入导航按钮(向左向右按钮) 以及Carousel插件(2014-11-7)
Carousel插件代码: /* * TabPanel的Carousel功能插件 * 取至 * https://github.com/VinylFox/Ext.ux.touch.SwipeTabs * ...
- iOS开发之--最简单的导航按钮更换方法/导航颜色的改变
有很多时候,我们需要用到导航,那么更换导航的时候,是在那用那修改,还是自定义一个导航,或者是声明一个代理方法,经过查资料和对导航属性的一些了解,用一种方法最为简单,就是在入口类里面添加一个方法,调用偏 ...
- [Xcode 实际操作]三、视图控制器-(7)UINavigationController自定义导航按钮
目录:[Swift]Xcode实际操作 本文将演示设置导航按钮的样式,以及设置导航标题区域的样式. import UIKit class FirstSubViewController: UIViewC ...
- IntelliJ IDEA 在左右两侧出现Project、Maven Project等导航按钮
IntelliJ IDEA 在左右两侧出现Project.Maven Project等导航按钮 选中 View > Tool Buttons 可以查看Project.Maven Project等 ...
- 【原创】smarty引擎下的导航按钮高亮实现
<?php$_nvaarr = array( array('name'=>'首页','url'=>'company.php?id='), array('name'=>'公司介绍 ...
- swift导航栏导航按钮添加多个按钮事件
//导航左边返回按钮 let button1 = UIButton(frame:CGRectMake(0, 0, 18, 18)) button1.setImage(Constant.Image.Na ...
- Dynamics CRM 客户端程序开发:自定义系统标准按钮的可用性
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复125或者20140414可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 一般是新建一个解决方案用于客制化 ...
随机推荐
- axios post params(post像get一样使用params传参)
今天有一个接口是/create?name=***&age=****,但是是一个post请求,我只见过get的这种请求. 找了好久- 解决方法: 发表的axios签名是axios.post(ur ...
- FTP文件夹错误:【打开FTP服务器上的文件夹时发生错误。请检查是否有权限访问该文件夹】
资源管理器访问FTP服务器报错,提示FTP文件夹错误:[打开FTP服务器上的文件夹时发生错误.请检查是否有权限访问该文件夹]. 详细信息: 200 Switching to ASCII mode. 2 ...
- keycloak(转载)
# 生成KEYSTORE.JKS keytool -genkeypair -alias keycloak.me -keyalg RSA -keystore keycloak.jks -validity ...
- 测试环境docker化实践
测试环境对于任何一个软件公司来讲,都是核心基础组件之一.测试环境伴随着发展也从单一的几套环境发展成现在的任意的docker动态环境+docker稳定环境环境体系.期间环境系统不断的演进,去适应集群扩张 ...
- Linux Broadcom Bluetooth BCM43142A0 蓝牙驱动安装
Linux Broadcom Bluetooth BCM43142A0 蓝牙驱动安装 想转到Linux,奈何蓝牙鼠标不识别. 经历了4个发行版的努力(Linux Mint,Pop!OS,OpenSus ...
- STM32上特殊管脚应用 重映射那个GPIO_Remap_SWJ_JTAGDisable
对于初学习者来说为什么用到PB3和PB4时无法控制输出呢? 下面就这一问题进行分析讲解. 首先,STM32F10x系列的MCU复位后,PA13/14/15 & PB3/4默认配置为JTAG功能 ...
- 04-Spring中的AOP编程之基于xml开发
AOP编程 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程.利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的 ...
- appium 遇到连接设备状态是offline
1.查看连接手机设备 adb derivces 时,手机状态是offline状态(无法正常连接). 解决法: 1.adb kill-server 终止adb调试服务 2.adb start-serve ...
- 非常有用的python单行代码
1 推导式应用 1.1 列表推导式(一行for循环) #For循环在一行 mylist = [200, 300, 400, 500] #正常方式 result = [] for x in mylist ...
- RTE2021 回顾丨实践中的摸爬滚打,AI OPS 落地之路
本文整理自声网Agora SD - RTN 网络传输质量负责人于涛在 RTE2021 实时互联网大会上的演讲分享.他在演讲中针对传统 OPS 痛点.AI OPS 的优势以及 AI OPS 工程化的难点 ...