5.02 WPF的 Combox、ListBox,slider、ProgressBar使用

1. 关于Combox\ListBox使用:

1.1 内容绑定有两种方法,

优先使用方法1,因为列表变化的时候,Combox会自动显示新的内容。而方法2并不会实时更新。

方法1:使用DataContext

 this.comboBox1.DisplayMemberPath = "name";  //显示的内容
 this.comboBox1.SelectedValuePath = "address";   //SelectedValue对应的列
 this.comboBox1.DataContext = m_Person2;

在xml中需要增加如下一句话:ItemsSource="{Binding}"

方法2:使用ItemsSource

 this.comboBox.DisplayMemberPath = "name";
 this.comboBox.SelectedValuePath = "address";
 this.comboBox.ItemsSource = m_Person;

【备注】

1.例子中的name,address必须是 属性字段。至于Person是类或者结构体没有关系。

2.可以通过SelectedItem 得到选择的对象,或者SelectedValue直接得到选择对象中绑定的值。

 private void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (this.comboBox1.SelectedIndex > -1)
     {
        var item= (this.comboBox1.SelectedItem) as Person;

         MessageBox.Show(item.address.ToString());

        // MessageBox.Show(this.comboBox.SelectedValue.ToString());
     }
 }

1.2 具体代码:

 public class Person{public string name { get; set; }public string address { get; set; }}public List<Person> m_Person = new List<Person>();public List<Person> m_Person2 = new List<Person>();m_Person.Add(new Person { name = "mike1", address = "天街1号" });
m_Person.Add(new Person { name = "mike2", address = "天街2号" });
m_Person.Add(new Person { name = "mike3", address = "天街3号" });
m_Person.Add(new Person { name = "mike4", address = "天街4号" });
this.comboBox.DisplayMemberPath = "name";
this.comboBox.SelectedValuePath = "address";
this.comboBox.ItemsSource = m_Person;   //方法1m_Person2.Add(new Person { name = "marry1", address = "银河系1号" });m_Person2.Add(new Person { name = "marry2", address = "银河系2号" });m_Person2.Add(new Person { name = "marry3", address = "银河系3号" });m_Person2.Add(new Person { name = "marry4", address = "银河系4号" });this.comboBox1.DisplayMemberPath = "name";this.comboBox1.SelectedValuePath = "address";this.comboBox1.DataContext = m_Person2;  //方法2private void button_Click(object sender, RoutedEventArgs e){m_Person.Add(new Person { name = "mike5", address = "天街5号" });m_Person2.Add(new Person { name = "marry5", address = "银河系5号" });}

界面:

 <ComboBox x:Name="comboBox" HorizontalAlignment="Left" Margin="143,149,0,0" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox_SelectionChanged"/><ComboBox x:Name="comboBox1" ItemsSource="{Binding}" HorizontalAlignment="Left" Margin="153,217,0,0" VerticalAlignment="Top" Width="120" SelectionChanged="comboBox1_SelectionChanged"/>

二、Slider

slider比较关键的参数是: 

Minimum="0" Maximum="100" SmallChange="1"  Orientation="Horizontal"  TickPlacement="Both"

注意:对于label要实施显示这个slider的数值,可以用下列办法,即把label绑定到这个slider上。

 Content="{Binding ElementName=slider, Path=Value, Mode=OneWay}"

  <Slider x:Name="slider" HorizontalAlignment="Left" Margin="359,103,0,0" VerticalAlignment="Top" Width="217" RenderTransformOrigin="0.5,0.5" Height="39"Minimum="0" Maximum="100" SmallChange="1"  Orientation="Horizontal"  TickPlacement="Both" ></Slider><Label x:Name="label" Content="{Binding ElementName=slider, Path=Value, Mode=OneWay}" HorizontalAlignment="Left" Margin="370,142,0,0" VerticalAlignment="Top"/>

三、ProgressBar

比较关键的参数是: 

Minimum="0" Maximum="100"   Orientation="Horizontal" 

另外:IsIndeterminate=true时,进度条将一直在动,含义是加载中。

 <ProgressBar IsIndeterminate="true" Height="10" Minimum="0" Maximum="100" Width="100" Value="40"/>

备注:如果希望按了按钮后,进度条陆续移动,可以用如下方法实现:

private void button1_Click(object sender, RoutedEventArgs e)
{int start = (int)this.pbar1.Minimum;int end= (int)this.pbar1.Maximum;new Task(()=>{               for (int i = start; i < end; i++){this.pbar1.Dispatcher.Invoke(()=> {this.pbar1.Value = i;});Thread.Sleep(100);}}).Start();      
}

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

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

相关文章

《孟婆汤的SHA-256加密》

点击下面图片带您领略全新的嵌入式学习路线 &#x1f525;爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章&#xff1a;黄泉路上的数据风暴****第二章&#xff1a;碱基对的非对称加密****第三章&#xff1a;RAFT协议暴动事件****第四章&#xff1a;灵魂分叉与硬重放****终章&…

SpringBoot事务管理(四)

记录几条SpringBoot事务管理中踩过的坑及解决办法&#xff1a; 1. 自调用问题 问题描述 在同一个类中&#xff0c;一个非事务方法调用另一个有 Transactional 注解的事务方法&#xff0c;事务不会生效。因为 Spring 的事务管理是基于 AOP 代理实现的&#xff0c;自调用时不会…

HTTP 1.1长连接问题

在长连接问题上&#xff0c;HTTP 1.1与HTTP 1.0还是有所区别的。 下面一起来看看&#xff1a; HTTP 1.1 支持长连接&#xff08;PersistentConnection&#xff09;和请求的流水线&#xff08;Pipelining&#xff09;处理&#xff0c;在一个 TCP 连接上可以传送多个 HTTP 请求…

鸿蒙应用元服务开发-Account Kit概述

Account Kit&#xff08;华为账号服务&#xff09;提供简单、快速、安全的登录功能&#xff0c;让用户快捷地使用华为账号登录元服务。用户授权后&#xff0c;Account Kit可提供头像、手机号码等信息&#xff0c;帮助元服务更了解用户。Account Kit提供的SampleCode示例工程体现…

IP综合实验

1.配置eth-trunk进行绑定 [LSW1]interface Eth-Trunk 0 [LSW1-Eth-Trunk0]q [LSW1]interface g0/0/2 [LSW1-GigabitEthernet0/0/2]eth-trunk 0 [LSW1-GigabitEthernet0/0/2]int g0/0/3 [LSW1-GigabitEthernet0/0/3]eth-trunk 0 [LSW1-GigabitEthernet0/0/3]display et…

SAP 学习笔记 - 系统移行业务 - MALSY(由Excel 移行到SAP 的收费工具)

以前有关移行&#xff0c;也写过一些文章&#xff0c;比如 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具 - 移行Material&#xff08;品目&#xff09;-CSDN博客 SAP 学习笔记 - 系统移行业务 - Migration cockpit工具2 - Lot导入_sap cockpit-CSDN博客 SAP学习笔记…

二叉树搜索树与双向链表

一&#xff1a;题目 二&#xff1a;思路 把二叉搜索树的值升序的打印出来&#xff0c;中序打印即可&#xff0c;但是此题不仅仅是有序的打印出二叉搜索树的值&#xff0c;而是要将其的结构也改变了&#xff0c;也就是说要改变节点间的指向&#xff0c;让其成为一个双向链表 我…

31天Python入门——第17天:初识面向对象

你好&#xff0c;我是安然无虞。 文章目录 面向对象编程1. 什么是面向对象2. 类(class)3. 类的实例关于self 4. 对象的初始化5. __str__6. 类之间的关系继承关系组合关系 7. 补充练习 面向对象编程 1. 什么是面向对象 面向对象编程是一种编程思想,它将现实世界的概念和关系映…

Spring Boot中常用内嵌数据库(H2、HSQLDB、Derby)的对比,包含配置示例和关键差异总结

以下是Spring Boot中常用内嵌数据库的对比&#xff0c;包含配置示例和关键差异总结&#xff1a; 一、主流内嵌数据库对比 1. H2 数据库 特点&#xff1a; 支持内存模式&#xff08;速度快&#xff09;和文件模式&#xff08;数据持久化&#xff09;。支持SQL方言&#xff08…

Apache Hive和Snowflake的`CREATE VIEW`语法和功能特性整理的对比表

写一个Apache Hive中CREATE VIEW语句转换为对应Snowflake中CREATE VIEW语句的程序&#xff0c;现在需要一个根据功能的相似性对应的Apache HiveQL和Snowflake SQL的CREATE VIEW语句的表。 以下是基于Apache Hive的CREATE VIEW语法规则构造的所有可能合法语句实例及其功能说明&…

个人博客网站从搭建到上线教程

步骤1:设计个人网站 设计个人博客网站的风格样式,可以在各个模板网站上多浏览浏览,以便有更多设计网站风格样式的经验。 设计个人博客网站的内容,你希望你的网站包含哪些内容如你的个人基本信息介绍、你想分享的项目、你想分享的技术文档等等。 步骤2:选择开发技术栈 因…

PHP回调后门

1.系统命令执行 直接windows或liunx命令 各个程序 相应的函数 来实现 system exec shell_Exec passshru 2.执行代码 eval assert php代码 系统 <?php eval($_POST) <?php assert($_POST) 简单的测试 回调后门函数call_user_func(1,2) 1是回调的函数 2是回调…

Raspberry 树莓派 CM4模块的底板设计注意事项

1&#xff0c; 树莓派CM4底板设计 树莓派CM4模块集成了CPU&#xff0c; 存储器&#xff0c;以太网&#xff0c; 无线模块&#xff0c;电源等等&#xff0c; 大大降低了硬件设计的要求。对我们使用树莓派提供了很好的便利性。 本人近期因为项目的需要设计了一款CM4的底板&#x…

Java后端开发(十八)-- 使用JAXB,将JavaBean转换XML文本

下面是测试时的运行环境: 1.jdk8 2.Maven,可能需要需要的依赖,如下: <dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><gr…

【一起来学kubernetes】30、k8s的java sdk怎么用

Kubernetes Java SDK 是开发者在 Java 应用中与 Kubernetes 集群交互的核心工具&#xff0c;支持资源管理、服务发现、配置操作等功能。 一、主流 Java SDK 对比与选择 官方 client-java 库 特点&#xff1a;由 Kubernetes 社区维护&#xff0c;API 与 Kubernetes 原生对象严格…

PHP开发者2025生存指南

PHP&#xff0c;这个曾经被戏称为“世界上最好的语言”的脚本语言&#xff0c;依旧在网络世界占据着重要的地位。然而&#xff0c;技术发展日新月异&#xff0c;面向2025年&#xff0c;PHP开发者要想保持竞争力甚至实现职业生涯的飞跃&#xff0c;需要不断学习和提升自身技能。…

MySQL与Redis数据一致性保障方案详解

前言 在现代分布式系统中&#xff0c;MySQL和Redis的结合使用非常普遍。MySQL作为关系型数据库负责持久化存储&#xff0c;而Redis则作为高性能缓存层提升系统的响应速度。然而&#xff0c;在这种架构下&#xff0c;如何保证MySQL与Redis之间的数据一致性是一个重要的挑战。本…

MySQL响应慢是否由堵塞或死锁引起?

目录标题 **1. 检查当前运行的查询和进程****2. 查看死锁日志****方法一&#xff1a;通过错误日志****方法二&#xff1a;通过InnoDB状态** **3. 检查锁信息****查看表锁****查看行锁&#xff08;InnoDB&#xff09;** **4. 分析慢查询****开启慢查询日志****分析慢查询** **5.…

【计算机网络】记录一次校园网无法上网的解决方法

问题现象 环境&#xff1a;实训室教室内时间&#xff1a;近期突然出现 &#xff08;推测是学校在施工&#xff0c;部分设备可能出现问题&#xff09;症状&#xff1a; 连接校园网 SWXY-WIFI 后&#xff1a; 连接速度极慢偶发无 IP 分配&#xff08;DHCP 失败&#xff09;即使分…

JavaScript函数式编程思想

1. 相关面试题 1.1. 什么是纯函数&#xff1f; 纯函数是一种函数&#xff0c;其返回值仅由其输入参数决定&#xff0c;不产生任何可观察的副作用&#xff0c;如修改全局对象或外部状态。 纯函数具有以下特性&#xff1a; 1. 确定性&#xff1a;相同的输入永远得到相同的输…