DisplayMemberPath与SelectedValuePath

DisplayMemberPath和SelectedValuePath分别在ItemsControl和Selector类中使用,用于显示和获取对象属性值。当对象为复合类型时,DisplayMemberPath设置显示哪个属性,如在ComboBox中展示Product的Name属性。而SelectedValuePath指定SelectedValue的值为哪个成员,如选择Product的Age属性。在ComboBox示例中,当选中项改变时,SelectionChanged事件会触发,显示选中Product的ID属性值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DisplayMemberPath和SelectedValuePath是两个属性成员,但它们并不是来自同一个类。DispalyMemberPath属性由ItemsControl类公开,而SelectedValuePath是Selector类的属性。当向ItemsControl控件添加的对象如果不是可视化对象时,会调用该对象的ToString()方法来获得该对象的字符串表示形式,然后在ItemsControl控件中使用TextBlock控件来呈现。

这就引出一个新的问题:如果对象的类型是复合类型,或者开发者自定义的类型,调用ToString方法通常返回的是对象的类型名称,而不是类实例的成员信息,这显然没有实际意义。

为了解决上述问题,ItemsControl类公开一个DisplayMemberPath属性,用来设置在ItemsControl控件中显示对象的哪个属性的值。例如,一个表示学员信息的Student类,它的Name属性表示学员姓名,Age属性表示学员的年龄。若是直接把Student实例添加到ItemsControl控件的项集合中,那么ItemsControl中只显示Student的类型名(包括命名空间的名称,如Demo.Student),而不会显示Student实例上各个属性的值。这时候如果设置DisplayMemberPath属性为Name,那么ItemsControl控件中就会显示Student实例额Name属性的值。

从Selector派生的控件允许用户对列表中的项进行选择,SelectedIndex属性表示被选中的项在集合中的索引(索引值从0开始),SelectedItem属性表示被选中的项。SelectedValuePath属性用于指定用源对象中的哪个成员的值来设置SelectedValue属性的值。例如上面举例的Student类,如果SelectedValuePath属性设置为Age,那么Se

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值