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

免费空间申请free/广州网站优化外包

免费空间申请free,广州网站优化外包,如何制作可以下单的网站,企业门户平台登录在Page页面里面, DataContext 更新后,前台数据要求会自动更新. 但前台的绑定如果用x:bind 语法. 它要求强类型.直接关联到DataContext上就不行了. 需要为Page 添加 INotifyPropertyChanged 接口实现. 页面如果很多的话. 为每个页面实现此接口,代码将有不少重复. 为了减少代码重…

在Page页面里面, DataContext 更新后,前台数据要求会自动更新.

但前台的绑定如果用x:bind 语法. 它要求强类型.直接关联到DataContext上就不行了.

需要为Page 添加 INotifyPropertyChanged 接口实现.

页面如果很多的话. 为每个页面实现此接口,代码将有不少重复.

为了减少代码重复量而努力.

现在要在页面代码里面添加vm属性.这是强类型.所以可以让前台使用x:bind.

public Vm<设置PageViewModel> VM { get; } = new Vm<设置PageViewModel>();

 

 vm泛型类定义如下: 这样当Data更新后,就会自动通知前台.

 

   public class Vm<T> : ViewModelBase{private T _data;public T Data{get { return _data; }set { SetProperty(ref _data, value); }}}

 

 

还要订阅事件更新,放在构造函数里面.这样当DataContext更新后.同时赋值给Data.

  

  DataContextChanged += (s, e) => VM.Data = this.DataContext as 设置PageViewModel;

 

 

这样只需要在Page里面添加2行代码就可以实现属性自动更新了.

 

PageViewModel 类型是继承 ViewModelBase 的. 带属性更新通知功能.引用Prism类就有.

 

   前台绑定如下: 需要指定Mode,不然就是OneTime.

 

Text="{x:Bind VM.Data.说明, Mode=OneWay}"

 

使用x:Bind 绑定可以直接绑定到事件,方法等等.自带属性参数事件.听说效率也比Binding 高.

如:  

  IsPaneOpen="{x:Bind VM.Data.Is左侧打开, Mode=TwoWay}"ItemClick="{x:Bind VM.Data.HamburgerMenu_OnItemClick}"

 

整个页面内代码:

namespace 年纪涛.简介.Views
{/// <summary>/// 可用于自身或导航至 Frame 内部的空白页。/// </summary>public sealed partial class 设置Page : Page{public 设置Page(){this.InitializeComponent();DataContextChanged += (s, e) => VM.Data = this.DataContext as 设置PageViewModel;}public Vm<设置PageViewModel> VM { get; } = new Vm<设置PageViewModel>();}
}
View Code

标准实现接口的代码: 本次没使用.

  /// <summary>/// 继承此page,可以带属性更新通知和vm更新通知功能./// </summary>/// <typeparam name="T"></typeparam>public class PageBase<T> : Page, INotifyPropertyChanged where T : class{public event PropertyChangedEventHandler PropertyChanged;public PageBase()  {DataContextChanged += (s, e) => VM.Data = DataContext as T;}public Vm<T> VM { get; } = new Vm<T>();protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}
View Code

 

转载于:https://www.cnblogs.com/NianJiTao/p/5985650.html

http://www.lbrq.cn/news/736129.html

相关文章:

  • 哪个网站可以改字体/seo关键词优化软件app
  • 怎么做网站或APP/德芙巧克力的软文500字
  • 如何在旅游网站上做攻略/东莞网络营销推广软件
  • 网站空间提供商/如何做网站营销
  • 上海网站设计公司推荐亿企邦/腾讯广点通
  • 网站建设模块一项目三/值得收藏的五个搜索引擎
  • 攀枝花网站建设兼职/苏州首页排名关键词优化
  • 龙岗 网站建设/如何建网站教程
  • 外贸 网站外链交换/第三方网站流量统计
  • 客户为什么要做网站/文大侠seo博客
  • 优质做网站费用/外贸网站优化
  • 张家口做网站价格/百度新闻排行榜
  • 在线制作图片的网站/百度推广如何办理
  • 重庆官方推广网站/cps推广联盟
  • 个人建站模板/广告投放平台都有哪些
  • 找事做搜索网站/北京网站推广助理
  • 怎样成立一个网站/市场营销推广
  • 教育门户网站系统建设方案/seoer是什么意思
  • 太湖手机网站建设/色盲测试图
  • 政府门户网站html模板/如何制作app软件
  • 滨州j建设局网站投诉电话/友の 连接
  • 网站建设人员的工资分配/最新网络推广平台
  • 网站建设 网站开发/新航道培训机构怎么样
  • 制作网站价格不一/网站分析案例
  • 做网站还要什么认证吗/百度保障客服电话
  • 无忧网站建设报价/游戏推广赚佣金的平台
  • 哪个公司需要做网站/宁波网站推广专业服务
  • 珠海建设网站的公司简介/百度排名点击软件
  • 动易cms下载/杭州网站优化推荐
  • 网站设计注意事项/seo教程搜索引擎优化入门与进阶
  • C ++代码学习笔记(一)
  • 【LeetCode】18. 四数之和
  • 【C++】--指针与引用深入解析和对比
  • java17学习笔记-Deprecate the Applet API for Removal
  • 点大餐饮独立版系统源码v1.0.3+uniapp前端+搭建教程
  • 【网络运维】Ansible roles:角色管理