C#中数据绑定的简单例子

article/2025/7/19 0:14:19

        数据绑定允许将控件的属性和数据链接起来——控件属性值发生改变,会导致数据跟着自动改变。

        数据绑定还可以是双向的——控件属性值发生改变,会导致数据跟着自动改变;数据发生改变,也会导致控件属性值跟着自动改变。

1、数据绑定的三个关键点

实现数据绑定的三个关键步骤

  • ①创建绑定数据
  • ②控件绑定数据(重点是:数据绑定的语法)
  • ③数据更新的通知方法(重点是:属性更改通知事件的实现)

 数据绑定的语法

Control.DataBindings.Add(“控件的属性名”,数据源,”数据源的属性名”);

下面通过一个例子——通过按键控制三个控件状态,来演示具体如何进行数据绑定。

2、实现效果

3、整体的文件结构

4、Data.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace videoFromBili_474458694
{internal class Data : INotifyPropertyChanged{private bool valveState;public bool ValveState{get { return valveState; }set{valveState = value;ValveText = valveState ? "水泵已开启" : "水泵已关闭";ValveColor = valveState ? Color.Green :Color.Red;OnPropertyChanged(nameof(ValveState));//这一句保证数据绑定是双向的}}public string ValveText { get; set; }public Color ValveColor { get; set; }//③数据更新的通知方法(重点是:属性更改通知事件的实现)public event PropertyChangedEventHandler PropertyChanged;protected virtual void OnPropertyChanged(string propertyName){if (PropertyChanged != null){PropertyChanged(this, new PropertyChangedEventArgs(propertyName));}}}
}

5、Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;namespace videoFromBili_474458694
{public partial class Form1 : Form{//①创建绑定数据Data data = new Data();	public Form1(){InitializeComponent();//②控件绑定数据label1.DataBindings.Add("Text",data, "ValveState");button1.DataBindings.Add("BackColor", data, "ValveColor");textBox1.DataBindings.Add("Text", data, "ValveText");}private void button_Open_Click(object sender, EventArgs e){data.ValveState = true;}private void button_Close_Click(object sender, EventArgs e){data.ValveState = false;}}
}

参考

C#上位机数据绑定细节(实用干货分享)_哔哩哔哩_bilibili

【实战】Winform专题实战训练-数据绑定 B0951_哔哩哔哩_bilibili

C#winform数据绑定_winform bind-CSDN博客


http://www.hkcw.cn/article/PUqxAHCMrZ.shtml

相关文章

训练和测试的规范写法

单通道图片的规范写法 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pyplot as plt import numpy as np# 设置中文字体支持 plt.rcParams[&quo…

【Web应用】若依框架:基础篇12 项目结构

文章目录 ⭐前言⭐一、课程讲解🌟1、寻找合适的对象✨1) ⭐二、怎样选择设计模式?🌟1、寻找合适的对象✨1) ⭐三、怎样使用设计模式?🌟1、寻找合适的对象✨1) ⭐总结 标题详情作者JosieBook头衔CSDN博客专家资格、阿里…

系统设计——状态机模型设计经验

摘要 本文主要介绍了状态机模型的设计经验,包括其定义、适用场景、建模示例、事件驱动设计以及配置数据化等内容。状态机模型通过事件驱动控制状态变化,适用于流程驱动系统、生命周期管理等场景,不适用于状态变化简单或不确定的场景。文中还…

WSP 对CSV文件中E+如何恢复可用方案

背景 在日常工作中会遇到从系统软件中导出的csv文件,其中长的字符会被自动科学计数,转成E,导致数据失去原来的信息。 样例 从系统中导出的用户表,其中【mobile】和【serial_no】两列的数据被转化为E,失去原始的信息…

突破知识传统依赖:模型内在推理能力评估的基准测试集 KOR-Bench

项目主页:https://kor-bench.github.io/ GitHub: https://github.com/multimodal-art-projection/KOR-BENCH 论文:https://arxiv.org/abs/2410.06526 随着人工智能技术的迅猛发展,大模型评估已成为AI领域的关键议题。在前序文章中&#xf…

ReactHook有哪些

React 中常用的 Hooks 列表及用法 React Hooks 是 React 16.8 版本引入的一项重要特性,它极大地简化和优化了函数组件的开发过程。以下是 React 中常用的 Hooks 列表及其详细用法: 1. useState useState 是用于在函数组件中添加状态的 Hook。通过调用…

移动端上拉 下拉 初始状态解决方案

引入第三方组件嵌套 手机端 将页面分为两部分: top顶部标题 例如search输入mescrollvue 组件嵌套 里面使用for 循环 初始状态下有三个状态的回调函数 分别是down up init 三个 分别对应下拉 上拉 初始状态触发

DMNDDB INSTALL新云文档数据库安装部署

DMNDDB INSTALL新云文档数据库安装部署 1 环境说明2 优化root用户限制3 准备安装包3.1 部署安装包3.2 安装目录介绍3.2.1 默认目录安装路径bin3.2.2 默认目录安装路径conf3.2.3 默认目录安装路径doc3.2.4 默认目录安装路径 thirdparty3.2.5 默认目录安装路径 tools 4 一键安装4…

深入剖析 DMA:原理、结构与工作流程详解

文章目录 DMADMA简介存储器映像DMA框图DMA基本结构DMA请求数据宽度与对齐数据转运DMA变量与常量实验外设寄存器访问DMA 配置与编程思路DMA 代码实现与测试DMA模块主要代码 DMA DMA简介 DMA 简介 功能与权限:英文全称 direct memory access,可直接访问…

从公开到私密:重新思考 Web3 的数据安全

去中心化存储是 Web3 的基石之一,使用户和应用能够在无需依赖中心化服务商的情况下存储数据。但自由也带来了一个重大挑战:数据安全。在一个无许可的世界中,如何确保用户文档、游戏资产或 AI 数据集等敏感内容是私密的、可控访问的&#xff0…

xilinx位置约束

xilinx位置约束 1.set_property LOC XXX XXX 参考:https://blog.csdn.net/Calvin790704/article/details/132980316 参考:https://blog.csdn.net/u011329967/article/details/124466598 pcie bank参考:Xilinx PCIE core管脚分配错误的解决方案…

亚马逊商品评论爬取与情感分析:Python+BeautifulSoup实战(含防封策略)

一、数据爬取模块(Python示例) import requests from bs4 import BeautifulSoup import pandas as pd import timeheaders {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36,Accept-Language: en-US }def scrape_amazon_re…

uniapp使用Canvas生成电子名片

uniapp使用Canvas生成电子名片 工作中有生成电子名片的一个需求&#xff0c;刚刚好弄了发一下分享分享 文章目录 uniapp使用Canvas生成电子名片前言一、上代码&#xff1f;总结 前言 先看效果 一、上代码&#xff1f; 不对不对应该是上才艺&#xff0c;哈哈哈 <template…

量化qmt跟单聚宽小市值策略开发成功

现在分享下一位朋友实盘对接的账户交易信息&#xff0c;给大家看下资金曲线收益&#xff0c;还有聚宽回测曲线&#xff0c;对比图。 哈哈哈&#xff0c;5月份10w小资金&#xff0c;获利2.9点&#xff0c;非常高&#xff0c;刚刚开始&#xff0c;还是可以的。

龙虎榜——20250530

上证指数阳包阴&#xff0c;量能较前期下跌有放大&#xff0c;但个股跌多涨少&#xff0c;下跌超过4000个。 深证指数和上涨总体相同。 2025年5月30日龙虎榜行业方向分析 1. 医药&#xff08;创新药原料药&#xff09; 代表标的&#xff1a;华纳药厂、舒泰神、睿智医药、华…

CPT302-2425-S2-Multi-Agent Systems

Lec1 Introduction Five Trends in the History of Computing • Ubiquity; • Interconnection; • Intelligence; • Delegation; 委派 • Human-orientation. Other Trends in Computer Science • The Grid/Cloud; Grid & MAS • Ubiquitous Computing; • Semant…

Ubuntu系统下可执行文件在桌面单击运行教程

目录 ​编辑 操作环境&#xff1a;这个可执行文件在原目录下还有它的依赖文件 1&#xff0c;方法1&#xff1a;创建启动脚本 操作步骤​&#xff1a; &#xff08;1&#xff09;​​在桌面创建脚本文件​​&#xff08;如 run_main_improve.sh&#xff09;&#xff1a; ​…

SOC-ESP32S3部分:20-SPISPI屏幕驱动

飞书文档https://x509p6c8to.feishu.cn/wiki/RyLFwXd6ViBfi9kUe17cHPeAnhj ESP32-S3 有4个SPI接口 – 2 个 SPI 接口用于连接 flash 和 RAM – 2 个通用 SPI 接口 具体如下&#xff1a; • SPI0&#xff0c;供 ESP32-S3 的 GDMA 控制器与 Cache 访问封装内或封装外 flash/…

DAY 15 复习日

尝试找到一个kaggle或者其他地方的结构化数据集&#xff0c;用之前的内容完成一个全新的项目&#xff0c;这样你也是独立完成了一个专属于自己的项目。 数据来源&#xff1a;糖尿病分类数据集Kaggle 一、数据预处理 1、读取并查看数据 # 忽略警告 import warnings warnings.…

JAVA 常用 API 正则表达式

1 正则表达式作用 作用一&#xff1a;校验字符串是否满足规则作用二&#xff1a;在一段文本中查找满足要求的内容 2 正则表达式规则 2.1 字符类 package com.bjpowernode.test14;public class RegexDemo1 {public static void main(String[] args) {//public boolean matche…