转载:ListBox的SelectedValue和SelectedItem的区别

转载:ListBox的SelectedValue和SelectedItem的区别
原文:http://www.beacosta.com/blog/?p=9

What is the difference between SelectedValue and SelectedItem?

When they are used by themselves, these two properties are very similar. The need for both and the difference between the two becomes apparent when SelectedValuePath is also set.

For example, consider our well-known GreekGods data source. I set the DataContext of the StackPanel to be that collection through code:

    GreekGods items;
    items = new GreekGods();
    mainStackPanel.DataContext = items;

And used an empty Binding to bind that collection to the ListBox. I know that I want to select the GreekGod with description “Messenger of the Gods” (even though I am only displaying the Name of each God). This is when SelectedValuePath becomes useful. Each item in the ListBox is a GreekGod object, so by setting SelectedValuePath to “Description” I am able to drill down into the Description property of each GreekGod. Then I just have to set SelectedValue to the description I am looking for and the item becomes selected.

    <StackPanel Name=”mainStackPanel”>
        <ListBox ItemsSource=”{Binding}” DisplayMemberPath=”Name” SelectedValue=”Messenger of the Gods” SelectedValuePath=”Description” Name=”listBox1″ (…) />
    </StackPanel>

// 注意这里可以用一个空的绑定,选择了GreekGod的Name作为DisplayMember,选择Description作为SelectedValue的选择字段,并且这里选择了Description的内容是"Messenger of the Gods"的那个Item。

The difference between SelectedValue and SelectedItem should be obvious now. SelectedValue returns the string it was set to (”Messenger of the Gods”), while SelectedItem returns the actual GreekGod object with that description.

    string messengerOfGods = (string)(listBox1.SelectedValue);
    GreekGod hermes = (GreekGod)(listBox1.SelectedItem);

SelectedValue is particularly useful when only part of your item is stored in the model you are data binding to. In this scenario, you would data bind the SelectedValue property to the partial information in your model but the ListBox can show a lot more information about that item.

If you have ideas of how to combine these two properties in one, we would love to hear it.

SelectedValueSample.png

Here you can find the VS project with this sample code. Put a breakpoint in the handler for the button click to inspect the values of SelectedValue and SelectedItem when the button is clicked. This works with September CTP WPF bits.

posted on 2008-10-20 15:52 cutebear 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/bear831204/archive/2008/10/20/1313538.html

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

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

相关文章

上帝的指纹——分形与混沌

来源&#xff1a;王东明科学网博客云朵不是球形的&#xff0c;山峦不是锥形的&#xff0c;海岸线不是圆形的&#xff0c;树皮不是光滑的&#xff0c;闪电也不是一条直线。——分形几何学之父Benoit Mandelbrot话说在一个世纪以前&#xff0c;数学领域相继出现了一些数学鬼怪&am…

scrapy 教程

------------------------------------------------------------------------------------------ scrapy 中文文档 和 scrapy 英文文档参照看。因为中文文档比较老&#xff0c;英文文档是最新的。 scrapy 英文文档&#xff1a;https://doc.scrapy.org/en/latest scrapy 中文文档…

智慧停车产业链市场全透析

来源&#xff1a;慧天地最近&#xff0c;Goodwin调查发现&#xff0c;在城市地区&#xff0c;接近30%的交通拥堵源自于司机寻找停车位。据称&#xff0c;到2020年&#xff0c;将会有20亿的汽车在公路上跑着&#xff0c;这就意味着&#xff0c;届时汽车的数量将比目前多了7.7亿辆…

语音合成与识别技术在C#中的应用 (转 )

语音合成与识别技术在C#中的应用 (转 &#xff09; 我们要想实现中文发音或中文语音识别&#xff0c;必需先安装微软的Speech Application SDK&#xff08;SASDK&#xff09;&#xff0c;它的最新版本是 SAPI 5.1 他能够识别中、日、英三种语言&#xff0c;你可以在这里下载&am…

left join 和join区别_sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇

Object中的wait、notify、notifyAll&#xff0c;可以用于线程间的通信&#xff0c;核心原理为借助于监视器的入口集与等待集逻辑通过这三个方法完成线程在指定锁&#xff08;监视器&#xff09;上的等待与唤醒&#xff0c;这三个方法是以锁&#xff08;监视器&#xff09;为中心…

深度干货!值得精读的2018自动驾驶行业发展报告

来源&#xff1a; 机器人大讲堂摘要随着科技革命的深入推进&#xff0c;人类社会进入万物互联、万物智能的智能化新时代。自动驾驶技术在人工智能和汽车行业的飞速发展下逐渐成为业界焦点。自动驾驶技术是汽车产业与高性能计算芯片、人工智能、物联网等新一代信息技术深度融合的…

TCP 连接状态

TCP十一种状态 全部11种状态 1. 客户端独有的&#xff1a;&#xff08;1&#xff09;SYN_SENT &#xff08;2&#xff09;FIN_WAIT1 &#xff08;3&#xff09;FIN_WAIT2 &#xff08;4&#xff09;CLOSING &#xff08;5&#xff09;TIME_WAIT 。 2. 服务器独有的&#xff1a…

Java加密与解密的艺术~MD算法实现

MD系列算法的实现是通过MessageDigest类来完成的&#xff0c;如果需要以流的处理方式完成消息摘要&#xff0c;则需要使用DigestInputStream和DigestOutputStream。 MD4 package org.zlex.chapter06_1_2;import java.security.MessageDigest; import java.security.Security;i…

密码学知识

文章目录密码学一、对称加密体系二、模式三、非对称加密体系四、数据完整性五、数字签名六、国密算法七、SSL协议八、CA密码学 提示&#xff1a;本文包括常见的对称加密和非对称加密算法&#xff0c;hash&#xff0c;数字签名 提示&#xff1a;以下是本篇文章正文内容&#xf…

德勒报告:2018年全球生命科学发展趋势

来源&#xff1a;新浪医药、战略前沿技术健康生命科学&#xff08;Health life sciences&#xff09;是指应用生物学和技术来促进健康护理&#xff0c;包括制药、医疗技术、基因组学、诊断学、数字医疗等等。这一板块产品种类繁多&#xff0c;包括药品、医疗技术、诊断和数字工…

Uber致人死亡或为自动驾驶肇事责任 没有判例可循

图&#xff1a;Uber自动驾驶测试车辆引发致人死亡交通事故凤凰网科技讯 据《福布斯》网站北京时间3月20日报道&#xff0c;美国当地时间本周日傍晚&#xff0c;一辆由Uber运营的自动驾驶汽车在亚利桑那州坦佩(Tempe)撞倒了一名女性并致其死亡。Uber周一表示&#xff0c;公司暂停…

28个Unix/Linux的命令行神器

From: http://os.51cto.com/art/201207/347414.htm 下面收集的Unix/Linux下的28个命令行下的工具&#xff0c;有一些是大家熟悉的&#xff0c;有一些是非常有用的&#xff0c;有一些是不为人知的。这些工具都非常不错&#xff0c;希望每个人都知道。本篇文章还在Hacker News上被…

Java加密与解密的艺术~SHA算法实现

MesssageDigest类也支持SHA算法&#xff0c;主要包含SHA-1、SHA-256、SHA-384和SHA-512四种算法。通过第三方加密组件包Bouncy Castle&#xff0c;可支持SHA-224算法。 SHA Java原始 /*** 2009-9-3*/ package org.zlex.chapter06_2_1;import java.security.MessageDigest; /**…

linux 无法打开.ttf_win7系统ttf文件打不开怎么办【解决方法】

我们都清楚ttf文件是windows系统当中的字体文件&#xff0c;能够直接通过这个文件进行字体的添加&#xff0c;不过最近有位win7系统用户却遇到了ttf文件无法打开的情况&#xff0c;系统提示“该文件没有与之关联的程序来执行该操作。请安装一个程序&#xff0c;或者&#xff0c…

全球20大智慧城市排行榜揭晓:无锡列中国第一,银川、杭州上榜!

来源&#xff1a;Juniper Research、物联网智库近日&#xff0c;英国市场调研机构Juniper Research发布了“全球智慧城市Top 20”的榜单&#xff0c;这份榜单从出行、医疗、公共安全和工作效率四个方面对城市的智能化程度进行综合评定&#xff0c;并揭示了这些城市在节省时间、…

Mono 2.0

Mono 2.0 Mono 2.0 发布有一段时间了,早就想体验一下,一直没时间,最近比效闲,非常闲,于是就尝试了一下Mono 2.0 操作系统 考虑到兼容问题,我没选择常用的Rad Hat,而是选择了openSUSE 11.0 , openSUSE 11.0 我也是第一次用, 在Virtual PC 2007上安装,每次到开始安装就黑屏,…

Java加密与解密的艺术~MAC算法实现

Java 原生 /*** 2009-9-10*/ package org.zlex.chapter06_3_1;import javax.crypto.KeyGenerator; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec;/*** MAC加密组件* * author 梁栋* version 1.0* since 1.0*/ public abs…

mysql rpm 启动_MySQL安装(rpm)和启动配置

MySQL安装(rpm)和启动配置安装环境&#xff1a;OS&#xff1a;Oracle Linux 5.9安装步骤&#xff1a;1.解压MySql安装包[rootbakdbserver mysql]# tar -xf MySQL-5.5.24-1.rhel5.x86_64.tar[rootbakdbserver mysql]# ll总计 373920-rw-r--r-- 1 root root 191242240 2012-05-2…

量子计算陷入难解困境,未来发展何去何从?

来源&#xff1a;科研圈量子计算机在一些具体任务上的表现很快就能超越传统电子计算机&#xff0c;但是在量子计算真正实现其巨大潜力前&#xff0c;依然需要克服许多基础性的难题。在量子计算的可行性被质疑长达几十年后&#xff0c;全世界范围内忽然掀起了对于量子计算的追逐…

mysql 64位 8.0.11_mysql8.0.11 在windows64安装 步骤

环境&#xff1a;Windows 101一、安装1. 解压zip包到安装目录比如我的安装目录是&#xff1a;D:\Program\MySQL2.配置文件在Windows系统中&#xff0c;配置文件默认是安装目录下的 my.ini 文件&#xff0c;部分配置需要在初始安装时配置&#xff0c;大部分也可以在安装完成后进…