首页 > 代码库 > 再谈WPF
再谈WPF
前几天初步看了一下WPF,按照网上说的一些方法,实现了WPF所谓的效果。但,今天我按照自己的思路设计了一个登陆界面,然后进行登陆验证,对WPF算是有进一步的理解,记录下来,以备后期查看。
首先,在WPF中,数据绑定很重要,也是WPF的核心。数据绑定和命令的绑定,需要后台来实现,主要是ViewModel来实现。
ViewModel中主要包含以下几项:
1、页面中所用到的参数,包括数据源和界面控件中的参数;这里的参数统一称为ViewModel的变量
2、ViewModel中需要定义一些命令参数来实现命令的绑定。数据的绑定统一绑定为ViewModel中的变量。
3、界面需要操作的变量属性,在ViewModel中封装时,要暴露给外面,在设置Set属性时,要进行特殊的处理。
4、在ViewModel中要实现界面按钮和其他需要的函数方法。
除了ViewModel外,还需要定义一个command类,继承于ICommand基类
下面是实现的核心代码:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows.Input;namespace WpfApplication1{ class LoginCommand:ICommand { private UserViewModelcs _userview; public LoginCommand(UserViewModelcs userviewmodel) { this._userview = userviewmodel; } //ICommand 成员 public bool CanExecute(object parameter) { // throw new NotImplementedException(); return true; } public event EventHandler CanExecuteChanged { add { } remove{} } public void Execute(object parameter) { //throw new NotImplementedException(); this._userview.login(); } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.ComponentModel;using System.Collections.ObjectModel;using System.Windows.Input;namespace WpfApplication1{ class UserViewModelcs:INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged;//INotifyPropertyChanged 成员 // //查询的数据 private Collection<User> _DataList = null; //登录的命令 private ICommand _Lgoin = null; public ICommand Lgoin { get { return _Lgoin; } } //登录框内容 private string username; public string Username { get { return username; } set { username = value; if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs("Username")); } } } private string pwd; public string Pwd { get { return pwd; } set { pwd = value; if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs("Pwd")); } } } //构造函数 public UserViewModelcs(Collection<User> userlist) { this._DataList = userlist; _Lgoin = new LoginCommand(this); } //登录方法 public void login() { if (this.Username == "aa") { if (this.Pwd == "aa") { System.Windows.MessageBox.Show("登录了"); } } } }}
再谈WPF
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。