接下来写ViewModels

创建运单的ViewModel类

    public class CreateExpressWindowViewModel: NotificationObject
{
private string province; public string Province
{
get
{
return province;
}
set
{
province = value;
this.RaisePropertyChanged("Province");
}
} private string city; public string City
{
get
{
return city;
}
set
{
city = value;
this.RaisePropertyChanged("City");
}
} private string area; public string Area
{
get
{
return area;
}
set
{
area = value;
this.RaisePropertyChanged("Area");
}
} private string street; public string Street
{
get
{
return street;
}
set
{
street = value;
this.RaisePropertyChanged("Street");
}
} private string username; public string Username
{
get
{
return username;
}
set
{
username = value;
this.RaisePropertyChanged("Username");
}
} private string phonenumber; public string Phonenumber
{
get
{
return phonenumber;
}
set
{
phonenumber = value;
this.RaisePropertyChanged("Phonenumber");
}
} private string createtime; public string Createtime
{
get
{
return createtime;
}
set
{
createtime = value;
this.RaisePropertyChanged("Createtime");
}
} public DelegateCommand CreateExpressCommand { get; set; } public CreateExpressWindowViewModel()
{
Createtime = DateTime.Now.ToShortDateString();
CreateExpressCommand = new DelegateCommand(new Action(InsertExpress));
} private void InsertExpress()
{
//Random rd = new Random();
//int num = rd.Next(10000000, 99999999); InsertExpressService insertExpressService = new InsertExpressService();
Express express = new Express();
insertExpressService.InsertExpress(Province,City,Area,Street,Username,Phonenumber,Createtime);
MessageBox.Show("成功下单!");
ExpressWindow expressWindow = new ExpressWindow(); ReadExpressWindow readExpressWindow = new ReadExpressWindow();
readExpressWindow.Show();
expressWindow.Close();
}
}

public class GetExpressWindow : NotificationObject
{
private string province; public string Province
{
get
{
return province;
}
set
{
province = value;
this.RaisePropertyChanged("Province");
}
} private string city; public string City
{
get
{
return city;
}
set
{
city = value;
this.RaisePropertyChanged("City");
}
} private string area; public string Area
{
get
{
return area;
}
set
{
area = value;
this.RaisePropertyChanged("Area");
}
} private string street; public string Street
{
get
{
return street;
}
set
{
street = value;
this.RaisePropertyChanged("Street");
}
} private string username; public string Username
{
get
{
return username;
}
set
{
username = value;
this.RaisePropertyChanged("Username");
}
} private string phonenumber; public string Phonenumber
{
get
{
return phonenumber;
}
set
{
phonenumber = value;
this.RaisePropertyChanged("Phonenumber");
}
} private string createtime; public string Createtime
{
get
{
return createtime;
}
set
{
createtime = value;
this.RaisePropertyChanged("Createtime");
}
}
public DelegateCommand GetExpressCommand { get; set; }
public GetExpressWindow()
{
GetExpressCommand = new DelegateCommand(new Action(GetExpress));
} private void GetExpress()
{
GetExpressService getExpressService = new GetExpressService();
Express express = new Express();
express = getExpressService.GetExpressData();
Province = express.Province;
City = express.City;
Area = express.Area;
Street = express.Street;
Username = express.UserName;
Phonenumber = express.PhoneNumber;
Createtime = express.CteateTime;
}
}

    public class RegisteredWindowViewModel : NotificationObject
{ private string userAccount; public string UserAccount
{
get
{
return userAccount;
}
set
{
userAccount = value;
this.RaisePropertyChanged("UserAccount");
}
} private string password; public string Password
{
get
{
return password;
}
set
{
password = value;
this.RaisePropertyChanged("Password");
}
} public DelegateCommand InsertCommand { get; set; }
public RegisteredWindowViewModel()
{
InsertCommand = new DelegateCommand(new Action(InsertUserData));
} private void InsertUserData()
{
InsertRegisteredService insertRegisteredService = new InsertRegisteredService();
User user = new User();
user.UserAccount = UserAccount;
user.Password = Password;
user = insertRegisteredService.InsertUser(UserAccount, Password);
MessageBox.Show("注册成功!");
}
}

   public class UserViewModel: NotificationObject
{
/// <summary>
/// 判断登录用户是否存在
/// </summary>
private bool exist; public bool Exist
{
get
{
return exist;
}
set
{
exist = value;
this.RaisePropertyChanged("Exist");
}
} }

    public class UserWindowViewModel : NotificationObject
{ //var logger = NLog.LogManager.GetCurrentClassLogger();
//logger.Info("Hello World"); //var a = LogManager.GetCurrentClassLogger();
private string username; public string Username
{
get
{
return username;
}
set
{
username = value;
this.RaisePropertyChanged("Username");
}
} private string userpassword; public string Userpassword
{
get
{
return userpassword;
}
set
{
userpassword = value;
this.RaisePropertyChanged("Userpassword");
}
} public DelegateCommand GetCommand { get; set; } public UserWindowViewModel()
{
GetCommand = new DelegateCommand(new Action(GetUser));
}
private void GetUser()
{
GetUserService getUserServicelist = new GetUserService();
List<User> userslist = getUserServicelist.GetAllUser(); List<User> usernamecount = userslist.Where(x=>x.UserAccount==Username).ToList();
List<User> passwordcount = userslist.Where(x=>x.Password==Userpassword).ToList(); ///方法二
for (int i = ; i < usernamecount.Count; i++)
{
if (usernamecount[i].UserAccount==Username&&usernamecount[i].Password==Userpassword)
{
MessageBox.Show("登录成功!");
ExpressWindow expressWindow = new ExpressWindow();
expressWindow.ShowDialog();
return;
}
else
{
MessageBox.Show("账号不存在或密码错误!");
return;
}
} ///方法一
//if (usernamecount.Count > 0 && passwordcount.Count > 0)
//{
// MessageBox.Show("登录成功!");
// return;
//}
//else
//{
// MessageBox.Show("登录失败!");
// return;
//} }
}

以上分别为创建运单,查看运单,以及注册,以及登录的ViewModels,作为Views和Models之间的连接器

简单的物流项目实战,WPF的MVVM设计模式(四)的更多相关文章

  1. 简单的物流项目实战,WPF的MVVM设计模式(一)

    新建一个WPF项目,命名为WMS 然后分别新建文件夹,Data,Models,Views,ViewModels,Services,如下图所示 然后通过NuGet安装连个Nuget包,分别为SQLite ...

  2. 简单的物流项目实战,WPF的MVVM设计模式(五)

    开始界面 <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> <RowD ...

  3. 简单的物流项目实战,WPF的MVVM设计模式(三)

    往Services文件里面添加接口以及实现接口 IUserService接口 List<User> GetAllUser(); GetUserService类 ConnectToDatab ...

  4. 简单的物流项目实战,WPF的MVVM设计模式(二)

    往Models文件添加一个类,ConnectObject         /// <summary>        /// 链接数据库字符串        /// </summary ...

  5. 使用MVVM设计模式构建WPF应用程序

    使用MVVM设计模式构建WPF应用程序 本文是翻译大牛Josh Smith的文章,WPF Apps With The Model-View-ViewModel Design Pattern,译者水平有 ...

  6. WPF系列教程——(二)使用Prism实现MVVM设计模式 - 简书

    原文:WPF系列教程--(二)使用Prism实现MVVM设计模式 - 简书 本文假设你已经知道MVVM设计模式是什么,所以直接进入正题,今天我们就用Prism来实现WPF的MVVM设计模式,百度上关于 ...

  7. CleanAOP实战系列--WPF中MVVM自动更新

    CleanAOP实战系列--WPF中MVVM自动更新 作者: 立地 邮箱: jarvin_g@126.com QQ: 511363759 CleanAOP介绍:https://github.com/J ...

  8. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...

  9. 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统 | 简单的分库分表设计

    前言 项目涉及到了一些设计模式,如果你看的不是很明白,没有关系坚持下来,写完之后去思考去品,你就会有一种突拨开云雾的感觉,所以请不要在半途感觉自己看不懂选择放弃,如果我哪里写的详细,或者需要修正请联系 ...

随机推荐

  1. [CF11D]A Simple Task 题解

    题解 我们从最简单的思路开始考虑,首先看到题目发现\(n\)非常小,于是很容易想到状态压缩. 我们考虑比较直觉的状态,f[i][j][k]表示以i为起点,当前在j,之前去过的点状态为k的简单环的方案数 ...

  2. sh_08_打印小星星

    sh_08_打印小星星 # 在控制台连续输出五行 *,每一行星号的数量依次递增 # * # ** # *** # **** # ***** # 1. 定义一个计数器变量,从数字1开始,循环会比较方便 ...

  3. asp.net ajax传递Json给aspx.cs后台 webmethod方法传递json

    1.提取一个向后台写入数据的方法 ///向后台cs页面请求数据的方法 function myPost(url,data,func) { $.ajax({ type: "post", ...

  4. spring cloud:config-eureka-refresh-bus-rabbitmq

    config-server-eureka-bus-rabbitmq 1. File-->new spring starter project 2.add dependency <paren ...

  5. Java之Integer类

    Integer类简介: Integer类是基本数据类型int的包装器类,是抽象类Number的子类,位于java.lang包中. Integer类在对象中包装了一个基本类型int的值,也就是每个Int ...

  6. 一款基于CSS3漂亮的按钮

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

  7. oracle 11g安装教程终结版

    1.解压文件 2.双击 “setup.exe” 3.高级安装.下一步 4.企业版  下一步 5.下一步 6.只要不报错,警告没事.(路径如果报错的话,没事,直接继续) 注意:如果有需要6.2版本的错误 ...

  8. nginx中lua主动设置Content-Length

    最近发现lua调用ngx.say和ngx.print 默认返回的HTTP头是trunk模式的,通常情况下是很好的,没有什么问题:但是要提供给其他人回源的时候就有问题了,特别是我要给slice模块回源, ...

  9. xsens melodic ros driver

    sudo apt-get update sudo apt-get install ros-melodic-xsens-driver 设置数据输出: // 输出四元数,加速度.角速度.地磁 python ...

  10. ssm的自动类型转换器

    1.jsp页面将String 转换成employee类型 <form action="testConversionServiceConverer" method=" ...