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.pswp.cn/news/279990.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279990.shtml
英文地址,請注明出處:http://en.pswp.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…

DML語言DDL

DML&#xff08;data manipulation language&#xff09;&#xff1a; 它們是SELECT、UPDATE、INSERT、DELETE&#xff0c;就象它的名字一樣&#xff0c;這4條命令是用來對數據庫里的數據進行操作的語言 。 DDL&#xff08;data definition language&#xff09;&#xff1a; D…

什么是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

新冠病毒中招|第一天

感染新冠病毒后具體如何治療&#xff0c;需要根據感染者病情輕重情況而定&#xff0c;嚴重的要聽醫生的。昨天是我個人感染奧密克戎毒株第一天&#xff0c;今天跟大家分享一下我的情況。我昨天感覺渾身無力&#xff0c;也有點發燒37.9&#xff0c;我就吃了感冒藥睡了一上午&…

機器學習(一)—— 線性回歸

機器學習&#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…

三星筆記本進入BIOS后找不到U盤啟動項/快速啟動鍵F12沒有反應

分析&#xff1a;BIOS開啟了 Fast Bios Mode 解決方法&#xff1a; 開機按F2進入BIOS設置&#xff0c;選擇Advanced菜單下Fast Bios Mode&#xff0c;設置為 Disabled&#xff0c;按F10鍵保存退出&#xff0c;重啟時按F12鍵即可進入快速啟動界面選擇。或按F2進入BIOS設置&#…

IP別名與多網卡綁定(RHEL5/RHEL6)

RHEL6的網絡管理與RHEL5的有比較大的改變。雖然在RHEL5、6中均安裝有NetworkManager&#xff0c;在RHEL5中2、3、4、5級別中默認是不啟用的。但在RHEL6中&#xff0c;默認是啟用的&#xff0c;NetworkManager會一直監控網卡狀態&#xff0c;修改網卡參數立即生效不用重啟服務。…

基于.NetCore開發博客項目 StarBlog - (25) 圖片接口與文件上傳

1前言上傳文件的接口設計有兩種風格&#xff0c;一種是整個項目只設置一個接口用來上傳&#xff0c;然后其他需要用到文件的地方&#xff0c;都只存一個引用ID&#xff1b;另一種是每個需要文件的地方單獨管理各自的文件。這倆各有優劣吧&#xff0c;本項目中選擇的是后者的風格…

pta7-7旅游規劃(dijkstra算法)

題目鏈接&#xff1a;https://pintia.cn/problem-sets/1101307589335527424/problems/1101314114762387456 題意&#xff1a;給n給城市&#xff0c;m條公路&#xff0c;公路是雙向的&#xff0c;起點S&#xff0c;終點D&#xff0c;并給出每條公路連接的兩個city的編號以及路費…

context:annotation-config vs context:component-scan

<context:annotation-config> 用來注入已經在上下文注冊的bean&#xff0c;無論bean是定義在XML中還是被 package scanning。 <context:component-scan>僅scans packages 去注冊應用上線文中的Bean。 example&#xff1a; Lets start with a basic setup of three …

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…

UI自動化web端框架path.py代碼

import os,sysBASE_PATH os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))sys.path.insert(0, BASE_PATH)# 配置文件CONF_PATH BASE_PATH os.path.sep conf os.path.sep config.json# 日志的路徑WEB_LOG_PATH BASE_PATH os.path.sep lo…

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. 這些表情符號都有特定的含義。 讓我們看看它們…