WPF入门到跪下 第九章 MVVM-基本数据处理

这篇具有很好参考价值的文章主要介绍了WPF入门到跪下 第九章 MVVM-基本数据处理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

MVVM是Model-View-ViewModel的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI展现出来,ViewModel是一个同步View和Model的对象。

在MVVM架构下,View和Model之间没有直接的联系,它们通过ViewModel进行交互,Model和ViewModel之间是交互是双向的,因此,View和Model的数据变化可以是同步的。
WPF入门到跪下 第九章 MVVM-基本数据处理,WPF,wpf

MVVM模式下的应用分层

Models:存放数据模型,可以是程序集或文件夹。

Views:存放WPF中的Window、Page、UserControl等一些界面可视化的文件,可以是程序集或文件夹。

ViewModels:业务逻辑层,可以是程序集或文件夹。
WPF入门到跪下 第九章 MVVM-基本数据处理,WPF,wpf

MVVM的基本数据处理

这里只是简单的做一下MVVM模式下各个层次双向绑定数据处理的实例。其他还包括依赖属性、数据校验、等等在前面的章节中有详细说明,就不再这里重述了。

Model层

如果数据模型层的模型中有很多需要进行数据变化通知处理的话,可以借用第三方库PropertyChanged.Fody来减少工作量。

public class MainModel:INotifyPropertyChanged
{
    private double value1 = 12;
    public double Value1 { 
        get { return value1; }
        set {
            value1 = value;
            Value3 = value1 + value2;
        }
    }
    private double value2 = 32;
    public double Value2
    {
        get { return value2; }
        set
        {
            value2 = value;
            Value3 = value1 + value2;
        }
    }
    private double value3;
    public event PropertyChangedEventHandler PropertyChanged;
    public double Value3 {
        get { return value3; }
        set {
            value3 = value;
            //通知xmal中绑定了此类型实例的Value3属性的对象,这个属性变化了,请重新取一下值
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Value3"));
        } 
    }
}

ViewModel层

 public class MainViewModel
 {
     public MainModel mainModel { get; set; } = new MainModel();
 }

View层文章来源地址https://www.toymoban.com/news/detail-811102.html

<Window ......
        xmlns:vm="clr-namespace:WpfApp8.ViewModels"
        ......>
    <Window.DataContext>
        <vm:MainViewModel/>
    </Window.DataContext>
    <Grid>
        <StackPanel>
            <TextBox Text="{Binding mainModel.Value1, UpdateSourceTrigger=PropertyChanged}"/>
            <Slider Value="{Binding mainModel.Value2}" Maximum="100" Minimum="0"/>
            <TextBlock Text="{Binding mainModel.Value3}"/>
        </StackPanel>
    </Grid>
</Window>

到了这里,关于WPF入门到跪下 第九章 MVVM-基本数据处理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (EasyX入门与实战)第九章 鼠标操作

     基础代码:         功能:移动画点,左键画方块,右键退出。  输出:   进阶编程: 1.jpg: 2.jpg:         给鼠标添加标志,按键做出响应。 输出:         小鸟会根跟随鼠标的位置移动。  

    2024年02月11日
    浏览(40)
  • 《Opencv3编程入门》学习笔记—第九章

    记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 一、图像直方图概述 1、作用:   在每个兴趣点设置一个有相近特征的直方图所构成的标签,通过标记帧与帧之间显著的边缘、颜色、角度等特征的统计变化,来检测视频中场景的变化。 2、概念:

    2024年02月11日
    浏览(45)
  • C++从入门到精通 第九章(继承和多态)【下】

    (1)一个面向对象的系统常常要求一组具有相同基本语义的方法能在同一接口下为不同的对象服务,这就是多态性。 (2)在C++中,多态性可分为编译时的多态性(静态多态)和运行时的多态性(动态多态),编译时的多态性是通过函数重载和模板体现的,运行时的多态性是

    2024年02月21日
    浏览(41)
  • 小黑子—Java从入门到入土过程:第九章-IO流

    IO流:存储和读取数据的解决方案 比如: 在玩游戏的时候,游戏进度的数据是保存在内存当中的 内存中的数据特点就是不能永久化的存储程序,程序停止,数据丢失 这时就需要添加一个存档功能,在存储的过程当中就是把数据保存到文件当中 想实现以上: 要知道文件在哪

    2024年02月04日
    浏览(39)
  • 《移动互联网技术》第九章 感知与多媒体: 了解质感设计的基本原则和设计方法

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(43)
  • 数据结构第九章

    (1)顺序表的查找          1)顺序表查找的结构 顺序查找的过程:从表中最后一个记录开始,逐个进行记录的和给定值的比较。(也就是说,在查找到时候从最后一个元素开始查找,在这个表中位置为0的位置空着,留给你要查找的元素) 在顺序表的查找中,需要

    2024年01月21日
    浏览(40)
  • EXCEL VBA从入门到精通 第九章:Excel VBA高级编程技巧

    介绍Excel VBA中的API编程,以及如何利用它们来访问Windows系统的功能。 Excel VBA提供了访问Windows系统API的功能,通过调用API函数可以访问Windows系统底层的功能和资源,例如操作系统、文件系统、网络、注册表等。API函数可以是Windows操作系统内置的函数,也可以是Windows DLL文件中

    2024年02月02日
    浏览(45)
  • WPF 入门笔记 - 07 - MVVM示例

    滴咚,大家好久不见💖。好就没写东西了,鸽着鸽着就无了😭。。。 回到正题,上篇文章说完命令提了一嘴 MVVM 模式直接就上 MVVMLight 这些程序的框架了,虽然也没说多少,但还是有点不好过渡,这篇对 MVVM 做一些系统学习,同时复习一下前几篇博文中的内容,完成一个采

    2024年02月13日
    浏览(49)
  • MATLAB第九章_数据图形可视化

    目录 数据图形可视化 MATLAB图形窗口 函数绘制 一元函数绘制  二元函数绘图 数据图形绘制简介 离散数据可视化 连续函数可视化 二维绘图函数 基本绘图 快速方程式画图 特殊二维图形  三维绘图函数 绘制三维曲面 生成栅格数据 网格曲线绘制 隐藏线的显示和关闭        

    2024年02月08日
    浏览(40)
  • ChatGPT技术原理 第九章:数据集和训练技巧

    目录 9.1 对话数据集 9.2 数据预处理 9.3 预训练技巧 9.4 微调技巧

    2024年02月02日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包