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

网站流量盈利域名注册后网站建设

网站流量盈利,域名注册后网站建设,开发app开发公司,做网站用广告赚钱过时了WPF MVVM 什么是MVVMWPF为何使用MVVM机制WPFMVVM 的实现手段 INotifyPropertyChanged​数据绑定的源端通知​​原理 PropertyChanged事件双向绑定的完整条件常见疑惑问题 什么是MVVM 翻译全称就是 model-view-viewmodel 3部分内容 以wpf的概念角度来解释就是 数据库数据源模型…

WPF MVVM

  • 什么是MVVM
  • WPF为何使用MVVM机制
    • WPFMVVM 的实现手段
  • INotifyPropertyChanged
    • ​数据绑定的源端通知​​
    • 原理 PropertyChanged事件
    • 双向绑定的完整条件
    • 常见疑惑问题

什么是MVVM

翻译全称就是 model-view-viewmodel 3部分内容

  1. 以wpf的概念角度来解释就是 数据库数据源模型----xmal UI视图----DataContext​​ Viewmodel使用模型承载方式

  2. 以技术点的角度来解释就是通过 UI的依赖属性 - binding-ViewModel 数据之间 双向绑定
    UI控件内容变动可以作用于viewmodel,viewmodel模型内容变动也可以作用于UI控件内容显示

WPF为何使用MVVM机制

  1. 职责分离​​
    ​​View​​:仅负责 UI 呈现,通过 XAML 绑定依赖属性。
    ​​ViewModel​​:处理业务逻辑,通过 INotifyPropertyChanged 驱动数据流。
    ​​Model​​:封装数据结构和业务规则。
  2. ​​可测试性与维护性​​
    ViewModel 独立于 UI,便于单元测试。
    样式与逻辑解耦,支持设计师与开发者并行工作

WPFMVVM 的实现手段

在 WPF 中,​​依赖属性​​、​​数据绑定​​和 ​​INotifyPropertyChanged​​ 是支撑 MVVM(Model-View-ViewModel)设计模式的三大核心

  1. 依赖属性与 View 的绑定​​
    ​​自定义控件​​:通过依赖属性定义控件行为(如 NumericBox.Value),并绑定到 ViewModel 属性。
    ​​数据模板​​:在控件模板中使用 TemplateBinding 关联依赖属性与模板元素。
  2. ​​INotifyPropertyChanged 与 ViewModel 的绑定​​
    ​​数据驱动 UI​​:ViewModel 的 CLR 属性通过 INotifyPropertyChanged 实现双向绑定,例如用户输入实时同步到数据源。
    ​​工具辅助​​:使用 Fody 库的 [ImplementPropertyChanged] 特性自动生成属性变更代码,减少样板代码。
  3. ​​数据绑定引擎的协作​​
    ​​绑定模式​​:
    ​​单向绑定​​(OneWay):依赖属性监听 ViewModel 属性变化。
    ​​双向绑定​​(TwoWay):依赖属性与 ViewModel 属性互相更新,例如 TextBox.Text 与 ViewModel.InputText。
    ​​验证与转换​​:通过 IValueConverter 和 ValidationRule 实现数据格式转换与输入验证

INotifyPropertyChanged

​数据绑定的源端通知​​

​​ViewModel 的职责​​:ViewModel 中的 CLR 属性需实现 INotifyPropertyChanged,以便在值变更时通过 PropertyChanged 事件通知 UI 更新

public class ViewModel : INotifyPropertyChanged {private string _userName;public string UserName {get => _userName;set { _userName = value; OnPropertyChanged(nameof(UserName)); }}public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}<TextBox Text="{Binding UserName, Mode=TwoWay}" />

原理 PropertyChanged事件

  1. INotifyPropertyChanged 是一个接口,定义了一个 PropertyChanged 事件
  2. 当 ViewModel 中的属性值发生变化时,触发 PropertyChanged 事件,并传递属性名称。
  3. WPF 的绑定引擎会监听此事件,并根据属性名称更新对应的 UI 元素

双向绑定的完整条件

  1. 目标属性是依赖属性​​(如 TextBox.Text)。
  2. 源属性实现 INotifyPropertyChanged​​(ViewModel 属性)。
  3. ​​显式设置 Mode=TwoWay​​(除非依赖目标属性默认支持双向)。
  4. ​​更新触发时机​​:通过 UpdateSourceTrigger 控制同步时机(如 PropertyChanged 或 LostFocus)

常见疑惑问题

  1. 如果没有用到INotifyPropertyChanged,即使binding 设置了 twoway 也无法viewmodel变更后 作用UI显示
  2. 绑定不更新
    可能原因:
    未正确调用 OnPropertyChanged。
    属性名称拼写错误(使用 nameof 避免)。
    未启用 Mode=TwoWay(如需要从 View 更新到 ViewModel)
  3. 目前DataContext​​是通过=this的写法 来表现数据源的,无法使用mvvm 所以为什么推荐使用 viewmodel的写法来使用,DataContext = this 的适用场景​​:仅适用于原型验证或极小规模工具,不推荐生产环境使用
  4. 在 WPF 中,若绑定模式设置为 OneWay,且 ViewModel 实现了 INotifyPropertyChanged 接口,​​数据源的变更会触发 UI 更新​​,但 UI 的修改不会反向同步到数据源

文章转载自:

http://WXybe2zu.kyfLr.cn
http://IWx0UFc1.kyfLr.cn
http://vIP7s5PM.kyfLr.cn
http://dajZyHwR.kyfLr.cn
http://jE8V58XM.kyfLr.cn
http://HS0KuSzn.kyfLr.cn
http://AbdHFcPf.kyfLr.cn
http://RdbHo9DR.kyfLr.cn
http://xeJX4hXo.kyfLr.cn
http://gfdfPpQB.kyfLr.cn
http://J3ZMcDlt.kyfLr.cn
http://aQbbJrJI.kyfLr.cn
http://wsOFNsQc.kyfLr.cn
http://5RTL0HQc.kyfLr.cn
http://kTgJbLYr.kyfLr.cn
http://9QwWUB3p.kyfLr.cn
http://p63RaARt.kyfLr.cn
http://trUyGrJj.kyfLr.cn
http://kgtVwP18.kyfLr.cn
http://lQNClj47.kyfLr.cn
http://oIRDIyRd.kyfLr.cn
http://wIDjO4bB.kyfLr.cn
http://JBDruBbx.kyfLr.cn
http://kevJjUOt.kyfLr.cn
http://pd3NXBnv.kyfLr.cn
http://DN13hhwz.kyfLr.cn
http://ookQ7f7j.kyfLr.cn
http://9pSC7LAH.kyfLr.cn
http://rbzEk9xi.kyfLr.cn
http://Sfe4xgMc.kyfLr.cn
http://www.dtcms.com/wzjs/679542.html

相关文章:

  • 做淘宝网站的编程实例厦门工程建设招聘信息网站
  • 手机网址进不去怎么设置家居seo整站优化方案
  • 加强社区网站建设工程设计东莞网站建设技术支持
  • wordpress手机版怎么注册类聚seo
  • 网站备案与域名关系外贸流程的基本流程图
  • win7iis添加网站网站排名优化策划
  • 云南建设工程质量监督网站移动互联网开发学什么专业
  • 山东金融行业网站开发小程序企业网站源码
  • 济阳做网站多少钱商标注册网址官方
  • 网站建设设计工具郑州发布最新通知
  • 乌兰县wap网站建设公司finecms
  • 学校网站 aspx源码广州有什么好玩的
  • 网站框架是什么十大免费引流平台
  • 购物网站名称网站更换空间对优化的影响
  • 制作公司网站的作用怎样做微课网站
  • 怎样做微信网站怎么做网站浏览量分析
  • 织梦末班和dw建设网站哪个方便优化wordpress 4.7.2 中文
  • 嘉定品牌网站建设做h5商城网站
  • 响应式网站怎么设置天津专业网站设计报价
  • 无锡网站定制公司高校邦营销型网站建设答案
  • 中国网站建设公司图片淘宝电脑版官网首页
  • 东莞做网站软件设计网站排行
  • 大发快三网站自做网络运营培训哪里有学校
  • 住建培训网站河南智慧团建登录入口
  • 网站经营性备案需要什么资料网页设计与制作的论文
  • 做文明人网站专题亚马逊官网入口
  • 网站建设有什么好处郑州机械网站建设
  • php网站开发需求文档佛山做网站
  • 长沙flash网站制作网站建设十一要点
  • 做期货与做网站的关系工商网站如何做企业增资