WPF-22 基于MVVM员工管理-02

我们接着上一节,这节我们实现crud操作,我们在EmployeeViewMode类中新增如下成员,并在构造函数中初始化该成员

f871baa87113095982750de6bc202426.png

code snippet

public EmployeeViewMode()
{employeeService = new EmployeeService();BindData();Employee = new Employee();AddCommand = new DelegateCommand(Add);GetEmployeeCommand = new DelegateCommand(GetEmployee);UpdateCommand = new DelegateCommand(Update);DeleteCommand = new DelegateCommand(Delete);
}

b2ac446dcf75455da0f722b358a62e6f.png

code snippet

private ICommand addCommand;
public ICommand AddCommand
{get { return addCommand; }set { addCommand = value; }
}
private ICommand getEmployeeCommand;
public ICommand GetEmployeeCommand
{get { return getEmployeeCommand; }set { getEmployeeCommand = value; }
}
private ICommand updateCommand;
public ICommand UpdateCommand
{get { return updateCommand; }set { updateCommand = value; }
}
private ICommand deleteCommand;
public ICommand DeleteCommand
{get { return deleteCommand; }set { deleteCommand = value; }
}

定义每个Command委托执行的方法,code snippet

public void Add()
{try {var emp = new Employee(){No = Employee.No,Name = Employee.Name,Role = Employee.Role,};bool isAdded = employeeService.Add(emp);if (isAdded){BindData();Message = "添加成功";}elseMessage = "添加失败";}catch (Exception ex){Message = ex.Message;}
}
public void GetEmployee()
{try{var employee = employeeService.GetEmployee(Employee.No);if (employee != null){var emp = new Employee(){No = employee.No,Name = employee.Name,Role = employee.Role,};this.Employee = emp;}elseMessage = "未发现当前用户";}catch (Exception ex){Message = ex.Message;}}public void Update(){try{var emp = new Employee(){No = Employee.No,Name = Employee.Name,Role = Employee.Role};bool isUpdated = employeeService.Update(emp);if (isUpdated){BindData();Message = "修改成功";}elseMessage = "修改失败";}catch (Exception ex){Message = ex.Message;}}private void Delete(){try{bool isDeleted = employeeService.Delete(Employee.No);Employee.No = String.Empty;Employee.Name = String.Empty;Employee.Role = String.Empty;if (isDeleted){BindData();Message = "修改成功";}elseMessage = "修改失败";}catch (Exception ex){Message = ex.Message;}}

在EmployeeService 中添加如下方法:

public bool Add(Employee employee){_employees.Add(employee);return true;}public bool Update(Employee employee){bool isUpdated = false;foreach (var item in _employees){if (item.No == employee.No){item.Name = employee.Name;item.Role = employee.Role;isUpdated = true;break;}}return isUpdated;}public bool Delete(string no){bool isDeleted = false;for (int i = 0; i < _employees.Count; i++){if (_employees[i].No == no){_employees.RemoveAt(i);isDeleted = true;}}return isDeleted;}public Employee? GetEmployee(string no)=> _employees.FirstOrDefault(x => x.No == no);

接下来我们将ViewModel中的Command和EmployeeView.xaml UI做绑定

98d51c44c4547d27acea87d0208e5609.png

code snippet

<Button Content="新增" Width="100" Height="30" Margin="2" Command="{Binding Path=AddCommand}"></Button>
<Button Content="修改" Width="100" Height="30" Margin="2" Command="{Binding Path=UpdateCommand}"></Button>
<Button Content="删除" Width="100" Height="30" Margin="2" Command="{Binding Path=DeleteCommand}"></Button>
<Button Content="查询" Width="100" Height="30" Margin="2" Command="{Binding Path=GetEmployeeCommand}"></Button>

到这里我们基本完成对一个页面的增删改查

9c8771b137098eaf52f616388cc34152.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279990.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 3

-- Linux -- 开心的一天 vi   所有的 unix like 系统都会内置 vi 文本编辑器 vim  较多使用的,可以主动的以字体颜色辨别语法的正确性&#xff0c;方便程序设计 vi/vim 的使用 -- 命令模式&#xff08;Command mode&#xff09; 输入模式&#xff08;Insert mode&#x…

从零开始搭建一个简单的ui自动化测试框架02(pytest+selenium+allure)

二、先搭一个架子 在我还是小白连py语法都不太熟悉的时候&#xff0c;经常在网上看关于自学ui自动化测试的博客&#xff0c;最熟悉的套路莫过于先给你介绍一下selenium的各个api&#xff0c;然后写一套代码去登陆微博或者百度什么的&#xff0c;但我今天不愿意这么写&#xff0…

什么是Adobe Lightroom,我需要它吗?

Adobe Photoshop Lightroom confuses a lot of new photographers. It has Photoshop in the name, but it isn’t Photoshop? What gives? Adobe Photoshop Lightroom使许多新摄影师感到困惑。 它的名称是Photoshop&#xff0c;但不是Photoshop吗&#xff1f; 是什么赋予了&…

jquery中的serializeArray方法的使用

转载于:https://blog.51cto.com/11871779/2359556

机器学习(一)—— 线性回归

机器学习&#xff08;一&#xff09;—— 线性回归 目录 0. 回归&#xff08;Regression&#xff09;的由来 1. 回归关系 2. 线性回归的整体思路 &#xff08;1&#xff09;根据数据提出假设模型 &#xff08;2&#xff09;求解参数 1&#xff09;梯度下降法 2&#xff09;正规…

Java EE启示录

前言 最近的这段时间一直在学习Java EE&#xff0c;刚刚完成了从0到1的蜕变&#xff0c;所以顺便整理一下我所了解到的Java EE&#xff0c;给刚入门学习的新人一些头绪&#xff0c;而所谓“启示录”&#xff0c;就是这个意思。 一.Java EE是什么&#xff1f; Java EE&#xff0…

又到年末“团建”!某企业员工吐槽:这真是一场噩梦……

这是头哥侃码的第270篇原创2022年即将结束&#xff0c;很多公司又到了一年一度的年末团建。前天晚上&#xff0c;之前的同事找我聊天&#xff0c;说他们公司因为最近疫情的原因&#xff0c;准备把年末“团建”放到春节后进行。但是计划的时间是2月份的某个周末&#xff0c;并且…

天梯 L2 这是二叉搜索树吗?

L2-004 这是二叉搜索树吗&#xff1f; &#xff08;25 分&#xff09;一棵二叉搜索树可被递归地定义为具有下列性质的二叉树&#xff1a;对于任一结点&#xff0c; 其左子树中所有结点的键值小于该结点的键值&#xff1b;其右子树中所有结点的键值大于等于该结点的键值&#xf…

Cactiz中文版安装使用

#----------------------------------------------------------# # > 红色字体 -特指煮酒个人所见。加粗则为需要重点注意。 ## > 蓝色加粗 -特指与本文相关人员&#xff0c;包括参与修正的朋友。 ## > 煮酒品茶 -Http://cwtea.blog.51cto.com # #----------…

如何在OS X中打开或关闭鼠标定位器

OS X 10.11 El Capitan includes a new “mouse locator” feature. If you lose your mouse pointer, just shake the mouse or move your finger on the touch pad vigorously, and the mouse pointer will temporarily grow very large so you can see it. OS X 10.11 El Ca…

微软宣布 Win10 设备数突破8亿,距离10亿还远吗?

百度智能云 云生态狂欢季 热门云产品1折起>>> 微软高管 Yusuf Mehdi 昨天在推特发布了一条推文&#xff0c;宣布运行 Windows 10 的设备数已突破 8 亿&#xff0c;比半年前增加了 1 亿。 根据之前的报道&#xff0c;两个月前 Windows 10 的全球市场份额才首次超越 W…

snapchat为什么_我的Snapchat朋友旁边的表情符号是什么意思?

snapchat为什么Next to some of your Snapchat friends, you’ll see little emoji. 在您的某些Snapchat朋友旁边&#xff0c;您会看到小的表情符号。 Each of these emoji has a specific meaning. Let’s look at what they are. 这些表情符号都有特定的含义。 让我们看看它们…

暴力打表之hdu 2089

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2089 有两种方法&#xff1a; 1.数位DP算法 2.暴力打表——真是个好法子&#xff01;&#xff01;&#xff01; 接下来是注意点&#xff1a; 1.一般这种数组中的一个数减去一个数组的另一个数&#xff0c;sum[i…

关于移动应用APP数据安全的一点见解

2019独角兽企业重金招聘Python工程师标准>>> 项目沟通中过程客户反复在强调&#xff0c;大数据的安全性&#xff0c; 言下之意&#xff0c;用了大数据&#xff0c;就不安全了&#xff0c;就有漏洞了。所以花了些时间&#xff0c;针对大数据的安全设计做了一个总结&a…

2022年底C# 解压zip文件遇到的一个Bug

本文由网友投稿。作者&#xff1a;江湖人士原文标题&#xff1a;2022年底C# 解压zip文件遇到的一个bug原文链接&#xff1a;https://jhrs.com/2022/46060.html最近在排查一个上传功能时&#xff0c;客户端上传的是zip文件&#xff0c;到服务器端后使用C# 解压zip文件的代码将上…

如何关闭mcafee软件_如何摆脱McAfee的通知和捆绑软件

如何关闭mcafee软件McAfee, like most other modern antivirus programs, doesn’t stay out of your way. It installs browser extensions and shows various alert messages you might not want to see. If McAfee came with your PC, you may regularly see messages that …

【命名规范】.NET中的枚举类型,要以Enum结尾吗?

“首先要给它一个名字&#xff0c;然后你才能描述它。”图片&#xff1a;北京的晚霞 摄影师&#xff1a;刘先生这个话题源于公司《.NET技术规范》中的一条&#xff1a;【强制】枚举声明应以Enum结尾我对此并不认同&#xff1a;首先&#xff0c;引用一下微软官方文档中&#xff…

macos安全性偏好设置_如何更改macOS系统偏好设置的布局

macos安全性偏好设置If you don’t care for the way the System Preferences appear in macOS, you can change them by hiding certain preference panels or by rearranging them alphabetically. 如果您不喜欢系统偏好设置在macOS中的显示方式&#xff0c;则可以通过隐藏某…

机器视觉技术在表面缺陷检测方面的发展趋势

导读&#xff1a;机器视觉技术在表面缺陷检测方面的发展趋势如何&#xff1f;很多人都不了解&#xff0c;据悉&#xff0c;目前工业中应用的机器视觉检测绝大部分执行的是二维检测任务&#xff0c;三维机器视觉检测仍处于理论研究和试验阶段。除此之外&#xff0c;机器视觉检测…

J.U.C之AQS

AQS是J.U.C的核心 AQS(AbstractQueuedSynchronizer)队列同步器&#xff0c;AQS是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。 同步器面向的是锁的实现者&#xff0c;它简化了锁的实现方式&#xff0c;屏蔽了同步状态管理、线程的排队、等待…