首页 > 代码库 > 实战基础技能(08)--------MVVM模式中WPF数据的完全绑定
实战基础技能(08)--------MVVM模式中WPF数据的完全绑定
一:截图,描述:将后台代码的姓名、年龄绑定到文本框,单击”增加年龄“--年龄自+1,单击”显示年龄“--弹出年龄的显示对话框,实现了从文本框修改年龄和后台更改年龄并显示到文本框
运行结果和解决方案管理截图如下:
二:person类
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel;namespace 完全数据绑定{ class Person : INotifyPropertyChanged//INotifyPropertyChanged是.net内置的接口,数据绑定会检测DataContext是否实现了INotifyPropertyChanged,如果实现了就会监听PropertyChanged这个属性改变的事件 { private string name;//定义名字 private int age;//定义年龄 public string Name { get; set; } public int Age//定义年龄属性 { get { return age;} set { this.age = value; if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs("Age")); } } } public event PropertyChangedEventHandler PropertyChanged;//定义一个属性改变事件 }}
三:界面后台代码
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace 完全数据绑定{ /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { private Person p1 = new Person();//定义一个字段并初始化 public MainWindow() { InitializeComponent(); } private void Window_Loaded(object sender, RoutedEventArgs e) { p1.Name = "红马車"; p1.Age = 24; txtName.DataContext = p1; txtAge.DataContext = p1; } //增加年龄 private void btnAdd_Click(object sender, RoutedEventArgs e) { p1.Age++; } //显示年龄 private void btnShow_Click(object sender, RoutedEventArgs e) { MessageBox.Show(p1.Age.ToString()); } }}
四:什么是MVVM?
可以说MVVM是专为WPF打造的模式, 也可以说MVVM仅仅是MVC的一个变种, 但无论如何, 就实践而言, 如果你或你的团队没有使用"Binding"的习惯, 那么研究MVVM就没有多大意义.
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。