wpf 简单实验 数据更新 列表更新

1.概要

1.1 需求

一个列表提供添加修改删除的功能,添加和修改的内容都来自一个输入框

1.2 要点

  • DisplayMemberPath="Zhi"
  • 列表.ItemsSource = datalist;
  • (列表.SelectedItem != null)
  • (列表.SelectedItem as A).Zhi = 内容.Text;
  • datalist.Remove((列表.SelectedItem as A)!);
  • public String? Zhi { get { return _zhi; } set { _zhi = value; OnPropertyChanged(nameof(Zhi)); } }
  • PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name));

2.代码

2.1 xaml

<Window x:Class="WpfApp5.MainWindow"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:WpfApp5"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><StackPanel><TextBox Name="内容" ></TextBox><Button Name="Add" Content="添加" Click="Add_Click" /><Button Name="Update" Content="修改" Click="Update_Click" /><Button Name="Delete" Content="删除" Click="Delete_Click" /><ListBox Name="列表" DisplayMemberPath="Zhi" Height="100"></ListBox></StackPanel>
</Window>

2.2 代码

using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;namespace WpfApp5
{/// <summary>/// Interaction logic for MainWindow.xaml/// 连表数据绑定/// </summary>public partial class MainWindow : Window{ObservableCollection<A> datalist = new ObservableCollection<A>();//List<A> datalist = new List<A>();public MainWindow(){InitializeComponent();init();}private void init(){datalist.Add(new A { Zhi = "1" });datalist.Add(new A { Zhi = "2" });datalist.Add(new A { Zhi = "3" });//列表.DataContext = datalist;列表.ItemsSource = datalist;}private void Add_Click(object sender, RoutedEventArgs e){datalist.Add(new A { Zhi = 内容.Text });}private void Update_Click(object sender, RoutedEventArgs e){if (列表.SelectedItem != null){(列表.SelectedItem as A).Zhi = 内容.Text;}}private void Delete_Click(object sender, RoutedEventArgs e){if (列表.SelectedItem != null){datalist.Remove((列表.SelectedItem as A)!);}}}class A:INotifyPropertyChanged{private String? _zhi;public String? Zhi { get { return _zhi; } set { _zhi = value; OnPropertyChanged(nameof(Zhi)); } }public event PropertyChangedEventHandler? PropertyChanged;private void OnPropertyChanged(String name){if (PropertyChanged != null){PropertyChanged.Invoke(this, new PropertyChangedEventArgs(name));}}}
}

3.运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/491129.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK8新特性全解析:Java8变革之旅

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

第10届蓝桥杯Scratch图形化编程 选拔赛初级组编程题1:小猫走城堡

准备工作: 导入育最库中的“Castle 3 小猫从坐标点(-165&#xff0c;-93)出发向城堡走去。随着位置的移动&#xff0c;角色大小逐渐变小&#xff0c;最后在城堡前消失。注意1.角色大小在逐渐变化&#xff0c;运行结束再次点击绿旗&#xff0c;程序应还能再次扶行。2.角色应该是…

C++初阶 | [八] (下) vector 模拟实现

摘要&#xff1a;vector 模拟实现讲解&#xff08;附代码示例&#xff09;&#xff0c;隐藏的浅拷贝&#xff0c;迭代器失效 在进行 vector 的模拟实现之前&#xff0c;我们先粗略浏览一下 stl_vector.h 文件中的源码来确定模拟实现的大体框架。 这里提供一些粗略浏览源码的技巧…

web项目部署 一篇就搞定

web部署的方式有很多&#xff0c;根据开发方式不同&#xff0c;部署方式也不同。最通用是docker部署&#xff0c;这个想必大家都熟悉。我们今天说另外一种。 部署过程 1、验证Jdk是否安装成功 2、验证Tomcat是否安装成功 3、验证Navicat 是否能连上数据库 4、创建数据库并…

谁是单身狗?——C语言刷题

创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 单身狗1 题述 在一个整型数组中&#xff0c;只有一个数字出现一次&#xff0c;其他数组都是成对出现的&#xff0c;请找出那个只出现一次的数字。 例如&#xff1a; 数组中有&#xff1a;1 2 3 4 5 1 2 3 4&a…

SQL 中如何实现多表关联查询?

阅读本文之前请参阅----MySQL 数据库安装教程详解&#xff08;linux系统和windows系统&#xff09; 在SQL中&#xff0c;多表关联查询是通过使用JOIN操作来实现的&#xff0c;它允许你从两个或多个表中根据相关列的值来检索数据。以下是几种常见的JOIN类型&#xff1a; …

设计模式-结构型模式-适配器模式

0 引言 结构型模式&#xff08;Structural Pattern&#xff09;关注如何将现有类或对象组织在一起形成更加强大的结构。 1 适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;&#xff1a;将一个接口转换成客户希望的另一个接口&#xff0c;使接口不兼容的那些类…

【前端素材】推荐实用的后台管理系统ebazer电商平台模板(附带源码)

一、需求分析 后台管理系统网站是指用于管理和控制网站、应用程序或系统后台运行的管理工具。它通常是网站或应用程序的管理者、管理员或内容编辑人员使用的界面&#xff0c;具有一系列功能来管理用户、内容、数据和系统设置。以下是后台管理系统网站的功能和特点&#xff1a;…

FPS游戏漫谈优化包体传输

在游戏服务器的部署环境中&#xff0c;机房的网络带宽都是有限制的。如果通信传输的数据总量太大&#xff0c;会挤占带宽甚至达到带宽上限&#xff0c;影响正常消息发送。另外&#xff0c;如果包体太大&#xff0c;在弱网环境下的通信质量会变差&#xff0c;更容易发生丢包重传…

C#之WPF学习之路(5)

目录 内容控件&#xff08;2&#xff09; TextBlock文字块 TextBox文本框 TextBoxBase基类 TextBox控件 RichTextBox富文本框 ToolTip控件&#xff08;提示工具&#xff09; Popup弹出窗口 Image图像控件 属性成员 事件成员 内容控件&#xff08;2&#xff09; Tex…

【错误处理】

错误处理 deferrecover机制处理错误自定义错误 deferrecover机制处理错误 【1】展示错误&#xff1a; 发现&#xff1a;程序中出现错误/恐慌以后&#xff0c;程序被中断&#xff0c;无法继续执行。 【2】错误处理/捕获机制&#xff1a; go中追求代码优雅&#xff0c;引l入机…

Docker安装MS SQL Server并使用Navicat远程连接

MS SQL Server简介 Microsoft SQL Server&#xff08;简称SQL Server&#xff09;是由微软公司开发的关系数据库管理系统&#xff0c;它是一个功能强大、性能卓越的企业级数据库平台&#xff0c;用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应…