我的自定义下拉对象

    public class ComboBoxModel{//基础属性public int SelectedIndex { get; set; }public string SelectedValue { get; set; }//附加属性public string ImagePath { get; set; }public bool IsSelected { get; set; }//码表属性public int Id { get; set; }public int SortNumber { get; set; }public int NodeKey { get; set; }public string NodeCode { get; set; }public string NodeName { get; set; }//构造函数public ComboBoxModel(){SelectedIndex = 0;SelectedValue = null;}public ComboBoxModel(int index, string value){SelectedIndex = index;SelectedValue = value;}}

在viewModel中的绑定参数

        public ObservableCollection<ComboBoxModel> CardType { get; set; }public ComboBoxModel CardTypeSelected { get; set; }

前端页面

<ComboBox Grid.Row="3" Grid.Column="4" VerticalAlignment="Center"  VerticalContentAlignment="Center" ItemsSource="{Binding DataContent.CardType}"DisplayMemberPath="SelectedValue" SelectedValuePath="SelectedValue"SelectedIndex="{Binding DataContent.CardTypeSelected.SelectedIndex,Mode=TwoWay}"SelectedValue="{Binding DataContent.CardTypeSelected.SelectedValue,Mode=TwoWay}"
/>

我的ItemsSource绑定的是一个ComboBoxModel类型的对象列表,就是要告诉页面我的下拉菜单里每个选项是什么内容

ItemsSource="{Binding DataContent.CardType}"

这里ObservableCollection<ComboBoxModel>和List<ComboBoxModel>意义相同,但是在MVVM里前者可与页面绑定互动,所以尽量用前者

在这个对象列表中的每一个选项本身是一个ComboBoxModel类型,且有两个属性:

SelectedIndex

SelectedValue

所以我需要明确告诉前端页面我显示的路径是哪里,选中参数的存储路径又是哪里

DisplayMemberPath="SelectedValue" //显示成员的路径

SelectedValuePath="SelectedValue"//选中参数的路径

所以在指定这两项后,前端下拉菜单才能正确的显示ItemsSource的内容

如果不设置这两个路径,前端页面就不知道这个自定义ComboBoxModel对象究竟要显示什么,很大可能性你得到的一个结果就是一长串ComboBoxModel的类型描述字符串

然后就可以绑定具体的接收SelectedIndex和SelectedValue的参数了,例如:

SelectedIndex="{Binding DataContent.CardTypeSelected.SelectedIndex,Mode=TwoWay}"
SelectedValue="{Binding DataContent.CardTypeSelected.SelectedValue,Mode=TwoWay}"

因为设置了TwoWay,所以若你的上下文DataContent实现双工接口的情况下就可以在后端更新前端数据了

public class ShowDialogEmployeeModel : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;public void OnChangedProperties(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}

上面代码是DataContent的双工接口举例

关于mvvm的ComboBox绑定SelectedValue值不正确问题相关推荐

  1. combobox绑定数据

    今天开发过程中遇到Combobox绑定数据的需求,研究了下绑定DataTable,现在Po上来,有时间研究下绑定其他类型的数据,到时候再来更新. 废话不多说,上代码: //清空一下绑定 m_Combo ...

  2. ListBox和ComboBox绑定数据简单例子

    1. 将集合数据绑定到ListBox和ComboBox控件,界面上显示某个属性的内容 //自定义了Person类(有Name,Age,Heigth等属性) List<Person> per ...

  3. Winform ComboBox 绑定

    1. 需求 我有一个参数类(AxisPrm),需要与界面的ComboBox进行绑定,ComboBox下拉选项框有两个选项,分别是"是"和"否",当下拉选择&qu ...

  4. ComboBox绑定数据源时触发SelectedIndexChanged事件的处理办法

    转载:http://hi.baidu.com/haoyun2012/item/d780ca157a29b239b9318080 感谢原作者 ComboBox最经常使用的事件就是SelectedInde ...

  5. RadGrid使用技巧:从RadGrid获取绑定的值

    本文主要介绍从RadGrid获取绑定的值,仅适用于Telerik RadControls for asp.net ajax. 获取方式 RadGrid把绑定的值存储在VIewState中,即使View ...

  6. WinForm 中ComboBox 绑定总结

    1. DataTable 用DataTable直接绑定,只需要设置DataSource.DisplayMember.ValueMember三个属性即可. Code this.cmbConsumeSup ...

  7. mvvm 自动绑定_ZK的实际应用:MVVM –表单绑定

    mvvm 自动绑定 这是我们从头开始构建ZK应用程序的第二集. 上一篇文章介绍了使用MVVM将数据加载和呈现到表中. 在本文中,我们将向您介绍ZK MVVM的表单绑定. 目的 我们将构建一个" ...

  8. ZK的实际应用:MVVM –表单绑定

    这是我们从头开始构建ZK应用程序的第二集. 上一篇文章涉及使用MVVM将数据加载和呈现到表中. 在本文中,我们将向您介绍ZK MVVM的表单绑定. 目的 我们将构建一个"添加"功能 ...

  9. Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

    目录 一.VueJS是什么? 二.Vue的优缺点 三.MVVM 数据双向绑定 四.Vue的安装和使用 五.Vue模板语法-文本渲染 六.常用的vue的指令 一.VueJS是什么? 它是一个轻量级MVV ...

最新文章

  1. C++库文件和头文件编写教程
  2. char [] 和 char * 区别
  3. Eclipse调试Java的10个技巧【转】
  4. mysql存储过程打不开了_请问mysql存储过程的问题,我找了几个例子一个都运行不起来,...
  5. 一个多线程和队列的实例演示
  6. keepalived实现nginx的高可用(双主模型)
  7. css清除浮动的原理
  8. “物联网”“云计算” IT业新概念风起云涌
  9. SVN图标不能正常显示
  10. Opera 设置微软雅黑字体显示!
  11. 彩影ARP防火墙 v6.0.2(x64)的问题 错误代码1/0 解决方案
  12. linux bsd格式,Linux系统日志管理_Linux/BSD系统
  13. Elastic:Data tiers 介绍及索引生命周期管理 - 7.10 之后版本
  14. 可编辑div的一些方法总结(二)自定义空格和回车事件
  15. Android 10编译出错
  16. Java面试题 基本类型和包装类对象使用 == 和 equals进行比较的结果?
  17. 蜻蜓直播社交软件之蜻蜓s前端文件目录详解-开源系统蜻蜓s系统
  18. Python 提取音乐频谱并可视化
  19. python之Scapy 中文文档:三、使用方法
  20. hp进系统卡在w ndows界面,惠普电脑一直卡在正在启动windows怎么办

热门文章

  1. centos7时间同步
  2. 编写一个程序,用户输入某个大写字母,产生一个金字塔图案。例如用户输入字母 E,则产生如下图案:
  3. iphone安装360不成功,无限提示Mobilesubstrate 0.9.3998未安装的解决办法
  4. Linux input子系统分析
  5. vue小程序开发(一) uni-app基本学习
  6. 东华大学计算机学院推免生面试难吗,2020东华大学计算机保研夏令营经验
  7. 国产32位单片机有哪些
  8. 毕设 JAVA JSP 学生成绩分析管理系统sqlserver论文
  9. python 计算某段时间每日对数收益率,并设计一种指标进行交易,分析年化收益和夏普比率
  10. Arduino操作MPU6050模块