我们接着上一节,这节我们实现crud操作,我们在EmployeeViewMode类中新增如下成员,并在构造函数中初始化该成员
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);
}
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做绑定
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>
到这里我们基本完成对一个页面的增删改查