当前位置: 首页 > news >正文

手机搭建网站软件下载厦门网站建设2015

手机搭建网站软件下载,厦门网站建设2015,wordpress主机安装教程,凡科平台送审严格吗背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism 主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件 下面是MainViewModel: private object body;public object Body {get { retu…

背景:使用ContentControl控件实现区域导航是有Mvvm框架的WPF都能使用的,不限于Prism

主要是将ContenControl控件的Content内容在ViewModel中切换成不同的用户控件

下面是MainViewModel:

private object body;public object Body
{get { return body; }set { body = value; RaisePropertyChanged(); }
}public DelegateCommand<string> OpenCommand { get; set; }public MainWindowViewModel()
{OpenCommand = new DelegateCommand<string>(obj =>{Body = obj switch{"ViewA" => new ViewA(),"ViewB" => new ViewB(),"ViewC" => new ViewC(),_ => Body};});
}


上面是有Mvvm框架就行了,每次打开新的模块就创建一个用户控件对象

下面是使用Prism框架的导航实现会方便一些

1.首先在App.xaml.cs中注入用户控件的依赖

2.ContentControl中的Content修改为:

<ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion" />

3.MainWindowViewModel变成:

public class MainWindowViewModel : BindableBase
{private readonly IRegionManager regionManager;public DelegateCommand<string> OpenCommand { get; set; }public MainWindowViewModel(IRegionManager regionManager){OpenCommand = new DelegateCommand<string>(obj => { regionManager.Regions["ContentRegion"].RequestNavigate(obj); });this.regionManager = regionManager;}
}

-- 也就是由创建用户控件,变成调用依赖注入的用户控件

导航参数

在调用导航前设置导航参数,请求导航的时候将导航参数传递过去

NavigationParameters keys = new NavigationParameters();
keys.Add("Title", "Hello");regionManager.Regions["ContentRegion"].RequestNavigate(viewName, keys);

然后导航用户控件的ViewModel需要接口INavigationAware,接口重写方法中都是带有参数NavigationContext的,然后通过它获取导航参数就行

public void OnNavigatedTo(NavigationContext navigationContext)
{if (navigationContext.Parameters.ContainsKey("Title"))Tile = navigationContext.Parameters.GetValue<string>("Title");
}

路由守卫

需要实现路由守卫需要将原本的INavigationAware接口换成IConfirmNavigationRequest,重写的方法如果continuationCallback的值是true就给导航过去,如果没有就不给导航

public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
{bool result = true;if (MessageBox.Show("请求导航?", "温馨提示", MessageBoxButton.YesNo) == MessageBoxResult.No){result = false;}continuationCallback(result);
}

导航日志

private IRegionNavigationJournal journal;
// 打开区域的方法
private void OpenView(string viewName)
{NavigationParameters keys = new NavigationParameters();keys.Add("Title", "Hello");// 调用完区域就记录在日志中regionManager.Regions["ContentRegion"].RequestNavigate(viewName, callBack =>{if (callBack.Cancelled){return;}journal = callBack.Context.NavigationService.Journal;}, keys);
}//返回上一页方法(让按钮绑定就行)
private void back()
{if (journal.CanGoBack)journal.GoBack();
}

http://www.hyszgw.com/news/43845.html

相关文章:

  • 学习做网站的孛校做行程的网站推荐
  • app开发用到的技术wordpress搜索优化
  • 增城电子商务网站建设网页制作的概念
  • 网站推广需要数据整改吗企业宣传册模板排版
  • ASP动态商业网站建设案例wordpress 插件管理
  • 模板建站服务器女人做春梦视频网站
  • 网站流量是怎么赚钱的用html表格做的网站
  • 网站分成比例系统怎么做免费网站模板
  • 开公司先建设网站seo专业术语
  • 皇家梅陇公馆网站建设淘宝seo优化排名
  • 企业微网站与手机微信医疗网站建设比较好的
  • 网站设计定制多少钱公司官方网站建设
  • 江西赣州网站大连企业免费建站
  • 怎么把dw做的网站传上去营销型高端网站建设
  • 云服务器网站建站五屏网站建设平台
  • 网站机房建设流程wordpress 评论api
  • 德州做网站最好的公司大数据营销试卷
  • 北京网站主题制作项目经理接到网站开发怎么开展
  • 做网站最好的语言网站标题在哪里
  • 网站给部分文字做遮挡代码网站全部用根目录
  • 找人做网站 多少钱女生网站开发
  • 企业年报查询网站东莞房价
  • 网站交互性app开发费用
  • 商城县西安网站优化平台
  • 电子商务是干什么的就业方向seo案例网站
  • 旅游网站建设分析 需求漳州做网站含博大网
  • 饿了么网站做生鲜吗wordpress拉黑用户
  • 如何制作自己的网站在里面卖东西微官网和小程序有什么区别
  • 响应式网站用什么开发的电子科技公司网站网页设计
  • 建定制营销型网站网络营销推广步骤