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

WPF 数据绑定类属性 和数据更新

WPF中数据绑定是一个非常强大的功能,不仅可以绑定后台数据,还可以进行实时更新。

数据绑定实例 :

在后台创建模型类,然后在标签页面进行导入并绑定。

第一步: 
// 在后台创建模型类
public class MyData
{public string Name { get; set; } = "李逵";
}第二步:
// 在标签页面导入实体类
xmlns:c ="clr-namespace:WpfProgram.Entity"第三步:
// 在标签页面指定数据源
<Grid.Resources><c:MyData x:Key="mydataScource"/>
</Grid.Resources>第四步:
// 在标签页面设置或着获取参与数据绑定时候的上下文,(通俗来讲以后可以在代码里面获取对象)
<Grid.DataContext><Binding Source="{StaticResource mydataScource}"/>
</Grid.DataContext>第五步: 
// 在标签页面绑定到目标标签上 label:{Bingding path=对象模型属性}
<Label Content="{Binding Path=Name}" FontSize="20" >
</Label>

数据更新实例:

// 实现数据更新需要再模型类里面添加INotifyPropertyChanged接口
// INotifyPropertyChanged 检查属性是否发生变化的接口

数据更新 :  
// 第一步: 在后台设置模型类
public class MyData : INotifyPropertyChanged
{public string Name { get; set; } = "李逵";// 实现INotifyPropertyChanged这个接口的PropertyChanged属性// PropertyChanged类型是委托函数public event PropertyChangedEventHandler? PropertyChanged;protected void OnPropertyChanged(string propertyName){// 当属性修改的时候触发PropertyChanged事件,紧跟着调用该函数PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}
}《--第二步: 标签设计并绑定数据--》
<Grid Name="g1"><Grid.Resources><c:MyData  x:Key="s1"/></Grid.Resources><Grid.DataContext><Binding Source="{StaticResource s1}" /></Grid.DataContext><!--把数据绑定给Grid标签,Grid下子标签都可以使用--><Label Width="100"Height="40"Content="{Binding Path=Name}"VerticalAlignment="Top"></Label>
</Grid>// 第三步: 在cs页面创建模型类对象,然后将对象赋值给Grid的DataContext属性 实现数据更新
MyData data = new MyData();
data.Name = "鲁提辖";
this.g1.DataContext = data;

数据更新实例2:

此方法在模型类数据变化时立马调用INotifyPropertyChanged的PropertyChanged函数,比较之前的更新方法此方法更新速度更快,实现数据更新,界面立马更新。

INotifyPropertyChanged接口 :
实现数据更新需要再模型类里面添加INotifyPropertyChanged接口
INotifyPropertyChanged 检查属性是否发生变化的接口。

数据更新 : 
// 第一步在后台设置模型类 
public class MyData : INotifyPropertyChanged
{private string name = "LIHX";public string Name{get{return name;}set{name= value;// 当数据更新时立刻在set里面调用OnProChanged函数OnProChanged("Name");}
}// 实现INotifyPropertyChanged这个接口的PropertyChanged属性// PropertyChanged类型是委托函数public event PropertyChangedEventHandler? PropertyChanged;protected void OnProChanged(string propertyName){// 当属性修改的时候触发PropertyChanged事件,紧跟着调用该函数PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}
}// 第二步设置标签布局并且进行数据绑定
<Grid Name="g1"><Grid.Resources><c:MyData  x:Key="s1"/></Grid.Resources><Grid.DataContext><Binding Source="{StaticResource s1}" /></Grid.DataContext><!--把数据绑定给Grid标签,Grid下子标签都可以使用--><Label Width="100"Height="40"Content="{Binding Path=Name}"VerticalAlignment="Top"></Label>
</Grid>// 第三步在cs页面创建模型类对象,然后将对象赋值给Grid的DataContext属性 实现数据更新
MyData data = new MyData();
data.Name = "鲁提辖";
this.g1.DataContext = data;

相关文章:

WPF 数据绑定类属性 和数据更新

WPF中数据绑定是一个非常强大的功能&#xff0c;不仅可以绑定后台数据&#xff0c;还可以进行实时更新。 数据绑定实例 : 在后台创建模型类&#xff0c;然后在标签页面进行导入并绑定。 第一步: // 在后台创建模型类 public class MyData {public string Name { get; set; }…...

使用云服务器搭建CentOS操作系统

云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…...

unity的引用传递和数组的联系

引用传递 //引用传递 static void SetY(out int x,out int y ){x 0;y 0;x 1000;}static void Main(string[] args){int x 0;int y 10;SetY(out x, out y);Console.WriteLine($"x{x},y{y}");} 结果是&#xff1a;x1000&#xff0c;y0 数组的引用传递 数组值…...

Android bug Unresolved reference: BR

新建项目后 导入viewBinding 编译后提示 Unresolved reference: BR 解决办法 app 目录下 build.gradle 中 plugins 节点 添加 id kotlin-kapt参考 https://stackoverflow.com/questions/77409050/could-not-find-androidx-corecore-ktx1-8-10...

Unity DOTS1.0 入门(1) ECS机制与概述

ECS机制与概述 Entity:实体 由一个一个的Component组合在一起&#xff0c;是连续的内存布局。通过EnitityManager来负责高效的分配和释放相关entity. World:世界 一个entity的集合,在当前世界里面&#xff0c;每个Entity都有唯一不同的entityld;运行时Unity会自动创建一个D…...

root管理员用户启动kibana报错

问题描述: CentOS7.9.2009环境,以root管理员用户启动kibana7.11.1程序报如下错误: Kibana should not be run as root. Use --allow-root to continue. [root@elasticsearch bin]# whoami root [root@elasticsearch bin]# pwd /usr/local/kibana-7.11.1-linux-x86_64/bi…...

【leetcode面试经典150题】50. 插入区间(C++)

【leetcode面试经典150题】专栏系列将为准备暑期实习生以及秋招的同学们提高在面试时的经典面试算法题的思路和想法。本专栏将以一题多解和精简算法思路为主&#xff0c;题解使用C语言。&#xff08;若有使用其他语言的同学也可了解题解思路&#xff0c;本质上语法内容一致&…...

第二期书生浦语大模型训练营第三次笔记

RAG RAG是什么&#xff1f; RAG&#xff08;Retrieval Augmented Generation&#xff09;技术&#xff0c;通过检索与用户输入相关的信息片段&#xff0c;并结合外部知识库来生成更准确、更丰富的回答。解决 LLMs 在处理知识密集型任务时可能遇到的挑战, 如幻觉、知识过时和缺…...

SpringMVC(一)【入门】

前言 学完了大数据基本组件&#xff0c;SpringMVC 也得了解了解&#xff0c;为的是之后 SpringBoot 能够快速掌握。SpringMVC 可能在大数据工作中用的不多&#xff0c;但是 SSM 毕竟是现在就业必知必会的东西了。SpringBoot 在数仓开发可能会经常用到&#xff0c;所以不废话学吧…...

SQL Server详细使用教程

SQL Server 是 Microsoft 公司开发的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;用于存储和检索数据。以下是 SQL Server 的详细使用教程&#xff1a; 目录 1. 安装 SQL Server 2. 连接到 SQL Server 3. 创建数据库 4. 创建数据表 5. 插入数据 6. 查…...

Spring Boot项目启动时执行指定的方法

项目场景&#xff1a; 本文介绍Spring Boot项目启动时执行指定的方法两种常用方式和他们之间的区别。 实现方案&#xff1a; 方式一&#xff1a;使用注解PostConstruct Component public class PostConstructTest {PostConstructpublic void postConstruct() {System.out.prin…...

红豆Cat 1开源|项目三: 从0-1设计一款HTTP版本RTU(支持GNSS)产品的软硬件全过程

HTTP版RTU&#xff08;支持GNSS&#xff09;项目概述 RTU&#xff08;Remote Terminal Unit&#xff09;&#xff0c;中文即远程终端控制系统&#xff0c;负责对现场信号、工业设备的监测和控制。RTU是构成企业综合自动化系统的核心装置&#xff0c;通常由信号输入/出模块、微…...

在 Mac 上配置高级内容缓存设置

在 Mac 上配置高级内容缓存设置 您可以使用高级配置参数针对网络配置微调内容缓存。 您可以在“终端”中使用命令行或通过修改“/资源库/Preferences/com.apple.AssetCache.plist”文件中的键值&#xff0c;来设定内容缓存的高级配置参数。若要使某些更改生效&#xff0c;必须…...

算法与数据结构 顺序栈(C++)

随机产生10个100以内的整数建立一个顺序栈&#xff0c;从栈顶到栈底依次显示栈内元素&#xff1b;从键盘输入出栈元素个数 n (1< n <10)&#xff0c;将 n 个元素依次出栈并显示出栈元素&#xff0c;再显示此时栈顶元素。 #include <iostream> #include <cstd…...

【WSL】在WIN11安装并使用Linux子系统(Ubuntu)

前言&#xff1a; 最近买了4060Ti 16G&#xff0c;可以尝试在本地实验大模型。一开始尝试使用Vmware搞Linux&#xff0c;发现没有办法加载GPU&#xff08;或者另外有办法没找到&#xff09;。所以只剩下了两条路&#xff1a;要么搞双系统&#xff0c;要么使用WSL&#xff08;W…...

【vim 学习系列文章 20 -- a:mode 的值有哪些?】

请阅读【嵌入式开发学习必备专栏 之 Vim】 文章目录 a:mode 的值有哪些?举例Vim 底部状态栏设置 a:mode 的值有哪些? 在 Vim 脚本语言中&#xff0c;a:mode 常常用于函数内部&#xff0c;以获取该函数被调用时 Vim 正处于的模式。它主常用于那些可以从不同模式下被调用的函数…...

sed命令多行处理

1. sed 如何工作的 sed 维护两个空间&#xff1a; 模式空间保留空间 sed是以行为周期来处理文本的。 sed从输入流中读取一行&#xff0c;去掉最后的换行符&#xff0c;把它放入模式空间。随后执行命令&#xff0c;每个命令都有关联的地址和条件&#xff0c;只有匹配时才执行…...

Secure Copy Protocol or SCP - 安全拷贝协议

Secure Copy Protocol or SCP - 安全拷贝协议 1. scp 文件传输1.1. 将远程文件拷贝到本地1.2. 将本地文件拷贝到远程1.3. 将远程目录拷贝到本地 References Secure Copy (remote file copy program) The SCP program is a software tool implementing the SCP protocol as a s…...

Java面试题:什么是Java的值传递和引用传递?列举其应用场景,并说明其特点

在Java中&#xff0c;值传递和引用传递是两种不同的参数传递机制。它们在Java程序中扮演着重要的角色&#xff0c;影响着方法如何接收和处理参数。了解这两种传递机制对于编写高效、可靠的Java代码至关重要。 值传递&#xff08;Pass by Value&#xff09; 值传递是指在调用方…...

Java 基于微信小程序的智能停车场管理小程序

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…...

[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?

&#x1f9e0; 智能合约中的数据是如何在区块链中保持一致的&#xff1f; 为什么所有区块链节点都能得出相同结果&#xff1f;合约调用这么复杂&#xff0c;状态真能保持一致吗&#xff1f;本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里&#xf…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器

拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件&#xff1a; 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

JDK 17 序列化是怎么回事

如何序列化&#xff1f;其实很简单&#xff0c;就是根据每个类型&#xff0c;用工厂类调用。逐个完成。 没什么漂亮的代码&#xff0c;只有有效、稳定的代码。 代码中调用toJson toJson 代码 mapper.writeValueAsString ObjectMapper DefaultSerializerProvider 一堆实…...