虽然网上有很多listview的代码,但是没基础的人表示一知半解,我弄了两天才算有所了解,打算做一个详细点的注释分享一下。
注:可以的话支持下正版吧。
首先是xmal界面布局
xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:d=\"http://schemas.microsoft.com/expression/blend/2008\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:local=\"clr-namespace:listview\" mc:Ignorable=\"d\" Title=\"MainWindow\" Height=\"350\" Width=\"282\">
最终功能界面如下:
界面代码相对简单
首先将界面分为三行
然后第0行放listview部件
其中下面这部分是点击右键弹出菜单
然后剩下的代码中的两个WrapPanel容器分别对应四个文本框和两个按钮。
备注:因为要使用数据库所以要事先安装好:右键单机listview工程->管理NuGet程
序包
然后下载/安装EntityFramework
安装完之后可以开始编写后台程序了(注意:xaml文件中一定要绑定数据如DisplayMemberBinding=\"{Binding Path=Id}\"语句)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Data.Entity;
using System.ComponentModel.DataAnnotations;
namespace listview
{
/// /// MainWindow.xaml 的交互逻辑 ///
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
GetData(); //将数据库的数据同步到listview上
}
private void button1_Click(object sender, RoutedEventArgs e)
//对应下方的删除按钮
{
del(); //删除行
}
//数据库的类
Student_context db = new Student_context();
public class myStudent
//学生信息
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Class { get; set; }
public int Age { get; set; }
}
public class Student_context : DbContext
//数据库
{
public DbSet } public void GetData() { //从数据库中读取数据 List //加载到Listview listview1.ItemsSource = list1; } public void button2_Click(object sender, RoutedEventArgs e) //对应添加按钮 { //打开数据库 using (var db1 = new Student_context()) { myStudent stu = new myStudent(); //从四个文本框中读取数据 stu.Id = int.Parse(textblock_ContactID.Text); stu.Name = textbox_Name.Text; stu.Age = int.Parse(textbox_age.Text); stu.Class = textbox_class.Text; db1.MyStudent.Add(stu); //将数据放入数据库 db1.SaveChanges(); //保存 GetData(); //刷新listview } } public void delete_stu(int del_id) { //打开数据库 using (var db1 = new Student_context()) { //根据id查找数据库中对应元素 var id = db1.MyStudent.Find(del_id); db1.MyStudent.Remove(id); //移除 db1.SaveChanges(); GetData(); } } public void del() { //鼠标选中某一行时SelectedItem不为空 //存在多选的情况 while (listview1.SelectedItem != null) { myStudent stu = listview1.SelectedItem as myStudent; if (stu != null && stu is myStudent) { delete_stu(stu.Id); } } } private void delete_student(object sender, RoutedEventArgs e) //对应 右键->菜单->删除 选项 { del(); } private void see_student(object sender, RoutedEventArgs e) //对应 右键->菜单->查看 选项 { see(); } private void listview1_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e) //鼠标双击 { see(); } public void see() { myStudent stu = listview1.SelectedItem as myStudent; if (stu != null && stu is myStudent) { MessageBox.Show(\"编号 : \" + stu.Id + \"\\n\\n\" + \"姓名 : \" + stu.Name + \"\\n\\n\" + \"年龄 : \" + stu.Age + \"\\n\\n\" + \"班级 : \" + stu.Class); } } private void Button_Click(object sender, RoutedEventArgs e) //对应学生信息右边的删除按钮 { Button b = sender as Button; int id = Convert.ToInt32(b.CommandParameter); delete_stu(id); } } } 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务