当前位置: 首页 > news >正文

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.lryc.cn/news/306278.html

相关文章:

  • 【Flink精讲】Flink性能调优:内存调优
  • Java 中常用的数据结构类 API
  • JavaScript学习小记(1)基本数据结构(数组,字符串)
  • python opencv实现车牌识别
  • K8S节点GPU虚拟化(vGPU)
  • NLP 使用Word2vec实现文本分类
  • 【Redis学习笔记03】Java客户端
  • 神经网络系列---激活函数
  • python中continue的对比理解
  • Amazon Generative AI | 基于 Amazon 扩散模型原理的代码实践之采样篇
  • [服务器-数据库]MongoDBv7.0.4不支持ipv6访问
  • 【b站咸虾米】chapter5_uniapp-API_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握
  • 自学Python第十八天-自动化测试框架(二):DrissionPage、appium
  • 云尚办公-0.3.0
  • 汇编英文全称
  • 基于虚拟力优化的无线传感器网络覆盖率matlab仿真
  • 阿里云-系统盘-磁盘扩容
  • libmmd.dll修复
  • 大数据时代的明星助手:数据可视化引领新风潮
  • 设计模式--享元模式和组合模式
  • 基于Java springmvc+mybatis酒店信息管理系统设计和实现
  • leetcode-找不同
  • 笔记本hp6930p安装Android-x86避坑日记
  • zabbix监控业务数据
  • access数据库泄露与IIS短文件名利用
  • MySQL 篇-深入了解 DDL 语言(一)
  • MT8788|MTK8788安卓核心板参数_4G联发科MTK模块
  • EXCEL 在列不同单元格之间插入N个空行
  • Linux快速修改ip地址
  • 采用遗传算法搜索MAC效率最高的矩阵乘规模