您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页WPF listview例子 初学者的详细注释

WPF listview例子 初学者的详细注释

来源:抵帆知识网


虽然网上有很多listview的代码,但是没基础的人表示一知半解,我弄了两天才算有所了解,打算做一个详细点的注释分享一下。

注:可以的话支持下正版吧。

首先是xmal界面布局

xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"

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\">

PreviewMouseDoubleClick=\"listview1_PreviewMouseDoubleClick\">

DataContext=\"{Binding ElementName=listView1,Path=SelectedItem}\">

学号:

姓名:

年龄:

班级:

最终功能界面如下:

界面代码相对简单

首先将界面分为三行

然后第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 MyStudent { get; set; }

}

public void GetData()

{

//从数据库中读取数据

List list1 = db.MyStudent.ToList();

//加载到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

本站由北京市万商天勤律师事务所王兴未律师提供法律服务