WPF_datagrid_demo2022
介绍
本项目特点以下两点:
- 1.WPF_datagrid的增删查改,表格数据的操作
- 2.响应式数据MVVM修改,非常酷,修改数据马上响应到页面上
源码地址
https://gitee.com/618859/wpf_datagrid_demo2022
外观
主要源码
具体的完整代码,看文章开头的分析哈
using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.CommandWpf;
using System.Collections.ObjectModel;
using WpfApp4DataGrid.Db;
using WpfApp4DataGrid.Models;
using WpfApp4DataGrid.views;
using System.Linq;
using System.Windows;
using System;
using System.Windows.Markup;
namespace WpfApp4DataGrid.ViewModel
{
public class MainViewModel : ViewModelBase
{
public MainViewModel()
{
localDb = new localDb();
QueryCommand = new RelayCommand(Query);
cancelCommand = new RelayCommand(cancelFun);
// 新增
AddCommand = new RelayCommand (AddFun);
EditCommand = new RelayCommand<int>(t => Edit(t));
DelCommand = new RelayCommand<int>(t => Del(t));
// 全选
checkAllCommand = new RelayCommand<Boolean>(t => checkAll(t));
ReadXmlCommand = new RelayCommand(ReadXml);
this.Print(this.isAllCheck+"");
}
localDb localDb;
public void Print(String data)
{
System.Diagnostics.Debug.WriteLine("打印" + data);
}
// 读取mxl
public void ReadXml()
{
// 打开一个新窗口
ReadXmlView Rview = new ReadXmlView();
var r = Rview.ShowDialog();
}
// 新增
public void AddFun()
{
Student model = new Student();
model.Id = GridModelList.Count + 1;
model.Name = "";
if (model != null)
{
AddView view = new AddView(model);
var r = view.ShowDialog();
if (r.Value)
{
localDb.AddStudentAtHead(model);
this.Query();
}
}
}
public void Edit(int id)
{
var model = localDb.GetStudentById(id);
if (model != null)
{
AddView view = new AddView(model);
var r = view.ShowDialog();
if (r.Value)
{
var newModel = GridModelList.FirstOrDefault(t => t.Id == model.Id);
if (newModel != null)
{
newModel.Name = model.Name;
}
}
}
}
public void Del(int id)
{
var model = localDb.GetStudentById(id);
if (model != null)
{
var r = MessageBox.Show($"确认删除当前用户:{model.Name}", "操作提示",
MessageBoxButton.OK, MessageBoxImage.Question);
if (r == MessageBoxResult.OK)
{
localDb.DelStudent(model.Id);
this.Query();
}
}
}
// 全选函数
public void checkAll(Boolean status)
{
System.Diagnostics.Debug.WriteLine("状态" + status);
localDb.checkAllStudent(status);
this.Query();
}
// 搜索框绑定值
private string search = string.Empty;
public string Search
{
get { return search; }
set { search = value; RaisePropertyChanged(); }
}
// 绑定全选变量
private Boolean isAllCheck = true;
public Boolean IsAllCheck
{
get { return isAllCheck; }
set { isAllCheck = value; RaisePropertyChanged(); }
}
private ObservableCollection<Student> gridModelList;
#region
public RelayCommand QueryCommand { get; set; }
// 读取xml
public RelayCommand ReadXmlCommand { get; set; }
// 新增
public RelayCommand AddCommand { get; set; }
// 重置
public RelayCommand cancelCommand { get; set; }
public RelayCommand<int> EditCommand { get; set; }
public RelayCommand<int> DelCommand { get; set; }
// 全选
public RelayCommand<Boolean> checkAllCommand { get; set; }
#endregion
public ObservableCollection<Student> GridModelList
{
get { return gridModelList; }
set { gridModelList = value; RaisePropertyChanged(); }
}
public void Query()
{
var models = localDb.getStudentByName(Search);
GridModelList = new ObservableCollection<Student>();
if (models != null)
{
models.ForEach(arg =>
{
GridModelList.Add(arg);
});
}
}
public void cancelFun()
{
this.Search = "";
this.Query();
}
}
}
// 参考资料https://www.bilibili.com/video/BV1mJ411F7zG?p=9&vd_source=125d808bbbad2b8400f221b816a0f674
安装教程
- 项目运行环境 visual studio 2019
2.不行的话,微信问我yizheng369