WPF之ComboBox的SelectedItem、SelectedValue、SelectedValuePath之差异
来源:互联网 发布:三国战纪神剑升级数据 编辑:程序博客网 时间:2024/05/19 23:54
WPF中的集合元素,比如ComboBox存在多个选择相关的属性,以下以ComboBox为例介绍以下这些属性的用法。
ComboBox的ItemsSource需要绑定一个集合类属性,比如界面元素类的DataContenx为BackViewModel对象,在BackViewModel类中定义了:ObservableCollection<Student> Students=....,可将Students绑定到ComboBox上。在ComboBox中,必须要显示在下拉列表框中的显示字段用DisplayMemberPath属性指出来,比如显示的为Name属性,则写法为:<ComboBox ItemsSource={Binding Sutdents},DisplayMemberPath="Name">。此时,该下拉列表框还不能接收选中的对象,为了接收选中的对象,需要将选中对象与程序的某个属性相互绑定。这时,可能有不同的绑定方式,可归纳为两种:
(1)第一种,将集合类中被Selected的成员直接绑定到BackViewModel对象的一个Student属性,比如名字为CurrentStudent,那么可以直接用SelectedItem进行绑定。
<ComboBox ItemsSource={Binding Sutdents},Selected={Binding CurrentStudent},DisplayMemberPath="Name">
(2)第二中,如果程序不是直接将选中的对象绑定到Student类型的属性,而是绑定到Student成员类型的属性。例如Student含有Name、Gender、Age等属性,而只是需要绑定Name属性。这是,在BackViewModel类中定义一个string StudentName属性,然后利用SelectedValue和SelectedValuePath进行绑定,写法如下:
<ComboBox ItemsSource={Binding Sutdents},SelectedValue={Binding StudentName},SelectedValuePath="Name",DisplayMemberPath="Name">
也就是说,SelectedValue和SelectedValuePath应该是配对使用的,其作用是将集合对象中的被选中子对象的某个属性绑定到BackViewModel对象的某个属性,实现被选择对象的属性的实时记录。
那么,默认情况下,SelectedValue/SelectedValuePath实现的是双向绑定吗,经过测试,答案确实是双向绑定的。不过,通过后台代码修改StudentName属性时,修改后的结果需要是Students所有成员的名字之一,否则ComboBox显示未选择状态(即显示为空的状态)。
- WPF之ComboBox的SelectedItem、SelectedValue、SelectedValuePath之差异
- wpf 之ComboBox的用法
- DropDownList.SelectedItem与DropDownList.SelectedValue的区别
- DropDownList.SelectedItem与DropDownList.SelectedValue的区别
- dropdownlist控件 selectedIndex、selectedItem、selectedValue 的区别
- selectedValue、selectedItem、selectedItem.value区别
- dropdownlist控件的几个属性selectedIndex、selectedItem、selectedValue、selectedItem.Text、selectedItem.value的区别
- dropdownlist控件的几个属性selectedIndex、selectedItem、selectedValue、selectedItem.Text、selectedItem.value的区别
- WPF控件之ComboBox
- 有关SelectedValue,SelectedItem,Text
- comboBox的SelectedValue为null
- ComboBox.SelectedItem
- flex之selectedItem与selectedIndex的区别
- WPF Datagrid.SelectedItem的用法实践
- WPF Combox selectedItem”不能绑定”的问题
- UWP下用x:Bind双向绑定ComboBox的SelectedItem
- silverlight中如何得到ComboBox的选中值(SelectedValue)?
- WinForm下ComboBox获取绑定对象集的SelectedValue补充
- 风口过了很久,豌豆荚卖了有一年多,所以应用分发还能做什么?
- 有人闷声发大财,有人遭遇滑铁卢——2017科技领域大盘点
- 传苹果正在开发心电图仪,未来 AppleWatch 可能帮你“逃过一劫”
- CCG:2017人工智能人才报告
- Nunit3在VS2017中进行.NET Core和.NET Standard项目单元测试
- WPF之ComboBox的SelectedItem、SelectedValue、SelectedValuePath之差异
- 协程两种写法分析
- 如何为单变量模型选择最佳的回归函数
- 2017年度盘点:15个最流行的GitHub机器学习项目
- 了解神经网络中的梯度爆炸
- 利用遗传算法优化神经网络:Uber提出深度学习训练新方式
- 为给定任务自动生成神经网络:MIT提出RNN架构生成新方法
- 渡鸦音箱独家测评: 代表百度AI技术尊严的DuerOS, 用户体验真的能过关吗?
- 滚石特写: 沉默7年后, Magic Leap用魔幻现实主义式科技重新定义了自己