WPF教程(八)--数据绑定(1)--基础概述

news2024/12/26 22:14:43

    使用WPF可以很方便的设计出强大的用户界面,同时 WPF提供了数据绑定功能。WPF的数据绑定跟Winform与ASP.NET中的数据绑定功能类似,但也有所不同,在 WPF中以通过后台代码绑定、前台XAML中进行绑定,或者两者组合的方式进行数据绑定。您可以绑定1.控件2.公共属性3.XML 4.对象WPF中的数据绑定跟WinForm与ASP.NET相比,更加快捷、灵活和简单

一、什么是数据绑定
WPF 中的数据绑定,必须要有绑定目标和要绑定的数据源。绑定目标可以是继承自 DependencyProperty的任何可访问的属性或控件,例如 TextBox 控件的 Text 属性。数据源可以是其他控件的属性,可以是对象实例、XAML 元素、ADO.NET Dataset、XML数据。微软针对XML绑定与对象绑定,提供了两个辅助类XmlDataProvider 和 ObjectDataProvider。
WPF的数据绑定跟ASP.NET与WinForm中的数据绑定有什么不同呢? 最大不同就是WPF使用{Binding …}这一语句。Binding是用来实现界面控件的属性与后台数据之间的绑定,通过这种形式将前台界面与后台数据联系在一起达到界面与数据耦合的目的。

WPF绑定引擎从 Binding 对象获取有关以下内容的信息:
源对象和目标对象。
数据流的方向。你可以通过设置 Binding.Mode(例如单双向绑定等) 属性来指定该方向。
值转换器(如果存在)。你可通过将 Converter 属性设置为用来实现 IValueConverter 的类的一个实例,指定值转换器。
WPF与ASP.NET与WinForm中的绑定方式比较,存在着如下几点差异:
(1)Binding可以通过XAML语句实现界面与数据的耦合。如果把Binding比作数据的桥梁,那么它的两端分别是Binding的源和目标。数据从哪里来哪里就是源,Binding是架在中间的桥梁,Binding目标是数据要往哪儿去。一般情况下,Binding源是逻辑层的对象,Binding目标是UI层的控件对象,这样,数据就会源源不断 通过Binding送达UI层,被UI层展现,也就完成了数据驱动UI的过程。如下图。
这里写图片描述

 (2)Binding有一个重要的属性Mode,实现绑定中的数据流向。具体有如下几种。

 (3)可通过配置触发器,决定用户在界面输入的数据在什么时候去修改数据源中的值。可以通过UpdateSourceTrigger属性实现,具体有如下几种值

 具体用法如下:

     Text="{Binding Path=ItemName, UpdateSourceTrigger=Explicit}" />

二、简单的绑定
接下来是本文的第一个示例,一个非常简单的绑定示例,该示例演示如何通过绑定的方式把ListBox中选中的值显示到 TextBlock中。
首先,给ListBox添加了七个 ListBoxItem,做为ListBox的选项 。
其次,把第二个 TextBlock 的 Text通过 Binding 与 ListBox 选择项进行绑定。Binding 语法中的 ElementName 属性指示 TextBlock 的 Text 属性要与其绑定的控件的名称。Path 属性指示我们将绑定到Text属性上ListBox元素的属性。具体代码如下。

  <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="150"/>
            <RowDefinition Height="150"/>
            <RowDefinition Height="138*"/>
        </Grid.RowDefinitions>
        <StackPanel Grid.Row="0">
            <TextBlock Width="248" Height="24" Text="股票名称:"
        TextWrapping="Wrap"/>
            <ListBox x:Name="listStockName" Width="248" Height="56">
                <ListBoxItem Content="全通教育"/>
                <ListBoxItem Content="大智慧"/>
                <ListBoxItem Content="宝钢股份"/>
                <ListBoxItem Content="浦发银行"/>
                <ListBoxItem Content="工商银行"/>
                <ListBoxItem Content="中国建筑"/>
                <ListBoxItem Content="中国南车"/>
            </ListBox>
            <TextBlock Width="248" Height="24" Text="你所选中的股票名称:" />
            <TextBlock Width="248" Height="24" Text="{Binding ElementName=listStockName, Path=SelectedItem.Content}">
            </TextBlock>
        </StackPanel>
    </Grid>

这里写图片描述

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

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

相关文章

用python制作剪刀石头布的小游戏

1 问题 在python中我们学习了条件语句&#xff0c;那么我们是否可以通过python中条件判断的功能来写出可以判断胜负的剪刀石头布小游戏呢? 2 方法 导入随机函数&#xff0c;保证胜负的随机性 设置对应数值&#xff0c;写好判断输赢的条件语句 运行并查看结果 代码清单 1 impor…

斯坦福| ChatGPT用于生成式搜索引擎的可行性

文&#xff5c;智商掉了一地 随着 ChatGPT 在文本生成领域迈出了重要一步&#xff0c;Bing 浏览器也接入了聊天机器人功能&#xff0c;因此如何保证 Bing Chat 等搜索引擎结果的精确率和真实性也成为了搜索领域的热门话题之一。 当我们使用搜索引擎时&#xff0c;往往希望搜索结…

教你如何进行DNS域名解析

目录 一:DNS系统介绍 1.DNS服务概述 2.DNS域名空间介绍 3.DNS 域名结构 4.DNS解析方式 5.DNS查询方式 &#xff08;1&#xff09;递归查询 &#xff08;2&#xff09;迭代查询 6.DNS服务器类型&#xff1a; (1)主域名服务器 (2)从域名服务器 (3)缓存域名服务器 (4)…

Android进阶宝典 -- 解读Handler机制核心源码,让ANR无处可藏

其实ANR核心本质就是让UI线程&#xff08;主线程&#xff09;等了太久&#xff0c;导致系统判定在主线程做了耗时操作导致ANR。当我们执行任何一个任务的时候&#xff0c;在Framework底层是通过消息机制来维护任务的分发&#xff0c;从下面这个日志可以看到&#xff0c; "…

thrift、go与php

学习一下thrift。 环境 mac m1&#xff0c;go 1.20&#xff0c;php 7.4&#xff0c;thrift 0.18.1 要学习thrift&#xff0c;第一步得先安装 $ brew install thrift学习的计划是用go作为server&#xff0c;php作为client&#xff0c;通过thrift的方式完成一次请求demo。 建…

Java语言的特点和八大基本类型

“byte和short两兄弟去找int问long去哪了” “int摇摇头说不知道” “此时float和double两兄弟也来凑热闹” “共同商议后决定去找char询问” “char面对五人的询问只好说boolean知道” “六人来到boolean的住处发现long竟然在玩猜真假游戏” Java语言的特点 1.简单易学…

个性化学习路径推荐综述

源自&#xff1a;软件学报 作者&#xff1a;云岳 代欢 张育培 尚学群 李战怀 摘 要 近年来, 伴随着现代信息技术的迅猛发展, 以人工智能为代表的新兴技术在教育领域得到了广泛应用, 引发了学习理念和方式的深刻变革. 在这种大背景下, 在线学习超越了时空的限制,…

2023年电信推出新套餐:月租19元=135G流量+长期套餐+无合约期!

在三大运营商推出的流量卡当中&#xff0c;电信可以说是性价比最高的一个&#xff0c;相对于其他两家运营商&#xff0c;完全符合我们低月租&#xff0c;大流量的要求&#xff0c;所以&#xff0c;今天小编介绍的还是电信流量卡。 在这里说一下&#xff0c;小编推荐的卡都是免…

教你怎样用PXE高效的批量网络装机

目录 一&#xff1a;PXE介绍 1.XPE概述 2.PXE批量部署的优点 3.搭建PXE各部作用 &#xff08;1&#xff09;PXE(Preboot eXcution Environment) &#xff08;2&#xff09;服务端 &#xff08;3&#xff09;客户端 二&#xff1a;部署PXE服务 1.安装并启用TFTP服务 2.安…

Tiktok/抖音旋转验证码

声明 本文以教学为基准、本文提供的可操作性不得用于任何商业用途和违法违规场景。 本人对任何原因在使用本人中提供的代码和策略时可能对用户自己或他人造成的任何形式的损失和伤害不承担责任。 如有侵权,请联系我进行删除。 抖音系的旋转验证码,跟得物一样,都是内外圈一起…

blast的-max_target_seqs?

Shah, N., Nute, M.G., Warnow, T., and Pop, M. (2018). Misunderstood parameter of NCBI BLAST impacts the correctness of bioinformatics workflows. Bioinformatics. 杂志Bioinformatics以letter to the editor的形式刊发了来自美国马里兰大学计算机系的Nidhi Shah等人…

基于html+css的图展示42

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

安卓设备远程管理软件

现在&#xff0c;安卓设备广泛应用于各类智能硬件&#xff0c;有时候我们需要远程管理这些安卓设备。远程管理软件使 IT 管理员能够从任何地方控制和管理安卓设备&#xff0c;确保它们安全、最新并以最佳水平运行。在本文中&#xff0c;我们将介绍一些当前主流的安卓设备远程管…

Automa函数学习(三)

从变量中获取数据 当我们想要用automa获取文本标签获取到网页的文本内容后,想要将获取到的文本内容当做参数往后面的标签里进行传递时就需要用到automa提供的传参格式 {{ variables.自定义参数名}} 举例: 先建立打开百度首页工作流 前面自定义的变量名为text,所以这里参数拼接…

云计算的未来发展趋势与优势,你是否了解?

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一、企业痛点 1.企业信息技术应用痛点 二、云计算的基础概念 1.什么是云计…

纯享三代HiFi reads,至美细菌完成图,加送质粒基因组!

三代测序时代&#xff0c;PacBio High-Fidelity reads在基因组组装中大放异彩。HiFi测序模式可产生既兼顾长读长&#xff0c;又具有高精度的测序结果。凌恩生物HiFi细菌基因组完成图测序&#xff0c;即利用PacBio HiFi测序模式对某细菌物种进行基因组de novo组装&#xff0c;从…

安科瑞充电方案解决电瓶车充电难、管理难、收费难问题

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 0引言 电动自行车已经成为重要的出行工具&#xff0c;数量肯定还会继续增长&#xff0c;各级政府部门和物业管理者已经对其带来的消防隐患引起高度重视。安科瑞电动自行车运营管理云平台通过充电桩、云平台、APP小程…

Spring框架及源码(二)---Spring IoC高级应用与源码剖析

Spring IOC 应用 第1节 Spring IoC基础 Spring框架下IOC实现&#xff0c;解析bean的几种方式 1.1 BeanFactory与ApplicationContext区别 BeanFactory是Spring框架中IoC容器的顶层接⼝,它只是⽤来定义⼀些基础功能,定义⼀些基础规范,⽽ ApplicationContext是它的⼀个⼦接⼝&a…

Testudo:Spartan + Groth16 的R1CS ZKP证明系统

1. 引言 前序博客有&#xff1a; Spartan: zkSNARKS without trusted setup学习笔记Spartan: zkSNARKS without trusted setup 源代码解析Signatures of Correct Computation 学习笔记&#xff08;本文称为PST承诺方案&#xff09;Groth16 学习笔记ZCash bellman版本 Groth16…

Spring Boot的日志文件

目录 日志的作用 日志的打印 常见的日志框架 自定义的日志打印 为什么不用sout来打印日志 Spring Boot日志打印 1.得到日志对象 2.使用日志对象提供的方法打印日志 日志级别 日志级别的顺序 日志级别的设置 日志持久化 配置日志文件的保存路径 配置日志文件的文件…