一起搭WPF之列表数据绑定

news2024/11/15 6:46:29

一起搭WPF之列表数据绑定

  • 1 前言
  • 2 数据绑定
    • 2.1 前端
    • 2.2 后端实现
      • 2.2.1 界面后台
      • 2.2.2 模型与逻辑
  • 3 问题
    • 3.2 解决
  • 总结


1 前言

之前已经简单介绍了列表的大致设计,在设计完列表界面后,我们可以开展列表的数据绑定,在前端显示我们的数据,对列表进行数据输入。
那么让我们开始大干一场吧!


2 数据绑定

2.1 前端

在前端DataGrid的ItemsSource就绑定好后台定义的数据,要相互对应。同时这个ItemsSource就是多个类的集合,类的属性就再绑定给不同的列表元素中。这里定义Name、ClothTpye等属性。

<DataGrid ItemsSource="{Binding DataList}"   ScrollViewer.VerticalScrollBarVisibility="Hidden" >
   <DataGrid.Columns>
       <DataGridTextColumn Header="名称" Width="*" Binding="{Binding Name}"/>
       <DataGridTextColumn Header="衣服类型" Width="*" Binding="{Binding ClothTpye}"/>
       <DataGridTextColumn Header="颜色" Width="*" Binding="{Binding ClothColor}"/>
       <DataGridTextColumn Header="尺码" Width="*" Binding="{Binding ClothSize}"/>
       <DataGridTextColumn Header="价格" Width="*" Binding="{Binding ClothPrice}"/>

2.2 后端实现

2.2.1 界面后台

在界面的后台.xaml中需要将当前窗口或控件的 DataContext 属性设置为一个新的 DataViewModel 实例。DataContext 是一个依赖属性,它允许子控件继承其父控件的 DataContext。

this.DataContext = new DataViewModel();

DataContext 属性用于绑定UI元素和数据源,将数据模型与视图(UI)连接起来。

2.2.2 模型与逻辑

我们在模型中,定义一个属性,this.NotifyChanged();实现了 INotifyPropertyChanged 接口,需要 OnPropertyChanged 方法来通知绑定的UI元素属性值的改变。这样,当 Name 属性的值改变时,所有绑定到 Name 属性的UI元素都会自动更新。

private int _name;

        public int Name
        {
            get { return _name; }
            set { _name = value; this.NotifyChanged(); }
        }

这一部分可以根据自己的需要来增加属性。

public ObservableCollection<DataModel> DataList { get; set; } = new ObservableCollection<DataModel>();

public DataViewModel()
{
    DataList.Add(new DataModel { Name = 1, Clothcolor = "红色", ClothSize = 2 });
}

我们在控制器的文件中,通过定义的ObservableCollection 是.NET Framework中提供的一个泛型集合类,它继承自 Collection 并实现了 INotifyCollectionChanged 接口。
这里的DataList与前端的数据绑定要一致!
我们在构造函数内增加对象,从而显示对应的数值。

3 问题

在这里插入图片描述
无故的空行以及数据列的增加!

3.2 解决

问题主要出现在前端,主要是设置方面的问题。

AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserResizeColumns="False"

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了列表数据的绑定。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【问题处理】前端Vue项目遇到的一些问题及处理方式

每次新整一个项目的时候&#xff0c;开端总是会遇到各种奇奇怪怪的问题&#xff0c;一步一坎的感觉&#xff0c;但是没关系&#xff0c;遇到了就一步一步去解决&#xff0c;当把所有问题都处理后&#xff0c;成功运行起来&#xff0c;就会突然很有成就感&#xff0c;一切都是那…

大模型嵌入向量Embeddings

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhlEmbeddings概述 嵌入(Embeddings)概述 基本概念 嵌入,或称为Embeddings,在机器学习领域中扮演着至关重要的角色。它是一种将离散数据元素,如文本中的单词或图像中的像素点,映射到连续的向量…

虹科方案 | 疫苗冷链温度监测解决方案

通过WHO PQS标准的支持和稳定性预算的应用&#xff0c;我们可以更好地保障疫苗在全球范围内的安全运输和储存&#xff0c;接下来让我们了解一下既能计算药品剩余稳定性预算&#xff0c;又符合WHO PQS预认证的疫苗冷链温度监测解决方案。 疫苗冷链温度监测解决方案 根据WHO和《…

dpdk解析报文协议-基于l2fwd

dpdk解析报文协议-基于l2fwd 0 前置条件 1、这里需要两台虚拟机&#xff0c;配置了相同的虚拟网络&#xff0c;可以通过tcpreplay在一台虚拟机回放报文&#xff0c;在另一台虚拟机通过tcpdump -i 网卡名 捕获到。 具体配置可参考https://www.jb51.net/server/2946942fw.htm 2…

IP SSL:最快捷的安全证书

在这个数字化时代&#xff0c;企业面临着前所未有的挑战——如何在保证业务高效运行的同时保护其核心资产免受网络威胁。随着网络安全事件频发&#xff0c;企业和个人对数据安全的关注度达到了前所未有的高度。在此背景下&#xff0c;IP SSL&#xff08;Internet Protocol Secu…

Python分布式任务处理库之dramatiq使用详解

概要 在现代 Web 应用和数据处理任务中,异步任务处理是一个至关重要的部分。Dramatiq 是一个用于分布式任务处理的 Python 库,旨在提供简单、可靠的任务队列解决方案。与其他任务队列库相比,Dramatiq 更加轻量级,且易于上手。它的设计目标是帮助开发者轻松地将耗时的任务放…

【开源分享】在线客服系统PHP源码 带搭建教程

系统的主要特色功能 自动回复和机器人知识库&#xff1a;通过后台设置机器人知识库&#xff0c;系统可以根据关键词自动回复用户&#xff0c;提高响应速度和服务效率。 内容过滤&#xff1a;支持设置违禁词&#xff0c;避免接收包含不良信息的用户消息&#xff0c;维护平台健…

海康VisionMaster使用学习笔记17-定位项目误差分析及精度提高

定位问题排查步骤 机构及成像排查 标定过程排查 标定数据质量排查 标定结果排查 示教过程排查 注意事项总结

Kompose工具:转换Compose项目为K8S项目

Docker与Kubernetes系列 转换Compose项目为K8S项目 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.cs…

光储电站联合配置!多种调度模式下的光储电站经济性最优储能容量配置分析程序代码!

前言 不同于光伏独立系统以平衡负荷电量为目标&#xff0c;光伏电站需要跟踪调度中心下达的计划出力曲线。光伏发电存在随机性和波动性的特点&#xff0c;大规模集中式光伏电站集群引起出力变化&#xff0c;并且其有功功率上调节能力较弱&#xff0c;将大量占用系统备用资源&a…

MacOS安装Axure10

MacOS安装Axure10 小阿呜有话说一、 软件下载&安装与激活二、Axure10软件汉化 叮嘟&#xff01;这里是小啊呜的学习课程资料整理。好记性不如烂笔头&#xff0c;今天也是努力进步的一天。一起加油进阶吧&#xff01; 小阿呜有话说 前不久换了新电脑&#xff0c;需要重新安…

文心快码Baidu Comate 帮你解大厂面试题:spring如何实现交叉依赖的注入?

&#x1f50d;【大厂面试真题】系列&#xff0c;带你攻克大厂面试真题&#xff0c;秒变offer收割机&#xff01; ❓今日问题&#xff1a;在8g内存的机器&#xff0c;能否启动一个7G堆大小的java进程&#xff1f; ❤️一起看看文心快码Baidu Comate给出的答案吧&#xff01;如…

设计模式2个黄鹂鸣翠柳-《分析模式》漫谈23

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 “Analysis Patterns”的第一章有这么一句&#xff1a; The "Gang of Four" book has had much more influence in software patterns than Alexanders work, and three o…

Linux随记(十一)(部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2)

一、部署flink-1.16.3、jdk-11.0.19、zookeeper-3.4.13、kafka_2.12-2.2.2 #软件下载 https://archive.apache.org/dist/kafka/2.2.2/kafka_2.12-2.2.2.tgz https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz https://archive.apache.org/…

油价波动加剧:需求忧虑与OPEC+增产决策成焦点

周五油价反弹难掩周度跌势 尽管周五油价在美联储降息预期的提振下大幅上扬&#xff0c;但本周整体油价仍录得下跌。WTI原油和布伦特原油分别下跌2.4%和0.83%&#xff0c;显示出市场对全球经济前景及原油需求的担忧。 OPEC增产决策悬而未决 OPEC成员国正面临增产决策的关键时刻。…

USB3.2 摘录(八)

系列文章目录 USB3.2 摘录&#xff08;一&#xff09; USB3.2 摘录&#xff08;二&#xff09; USB3.2 摘录&#xff08;三&#xff09; USB3.2 摘录&#xff08;四&#xff09; USB3.2 摘录&#xff08;五&#xff09; USB3.2 摘录&#xff08;六&#xff09; USB3.2 摘录&…

【Kotlin设计模式】Kotlin实现适配器模式

前言 适配器模式(Adapter Pattern)的核心将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;使得客户端能够通过自己期望的接口与不兼容的类进行交互。适配器模式有三种实现方式&#xff0c;分别是类适配器模式、对象适配器模式、 接口适配器模式。 我们假设有个视频…

单GPU高效训练笔记

文章目录 cuda kernelFlash Attention v1&#xff0c;v2数据预加载micro-batchMicro-batch 的概念Micro-batch 的作用总结 编译优化TorchDynamo 的工作原理主要步骤 TorchDynamo 的优势使用场景总结背景和概念dynamo.optimize("nvfuser") 的作用使用场景优势 本文主要…

论素数的历史

目录 01 &#xff08;1&#xff09;这个级数实际上是s的函数&#xff0c;后来被称为ζ函数。 &#xff08;2&#xff09;证明了上面的结果&#xff0c;也就间接证明了 “素数无限多”&#xff0c;因为有限的序列之和不可能发散。 &#xff08;3&#xff09;等式左边的符号是…

应对技术风暴:开发团队的坚韧与智慧

目录 开发团队如何应对突发的技术故障和危机&#xff1f; 一、未雨绸缪&#xff1a;构建坚实的预防体系 1.1 强化监控系统 1.2 定期进行系统健康检查 1.3 制定应急响应计划 1.4 案例(一)&#xff1a;亚马逊的AWS云故障 二、迅速响应&#xff1a;以行动诠释坚韧 2.1 快…