WPF的MVVM模式给ComboBox绑定数据和读取
时间:2020-03-23
本文章向大家介绍WPF的MVVM模式给ComboBox绑定数据和读取,主要包括WPF的MVVM模式给ComboBox绑定数据和读取使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在网上找到类似的代码:
XAML文件
<ComboBox Margin="-16,3,0,5" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" Name="cboxLocationKeyword" ItemsSource="{Binding LocationSource,Mode=OneWay}" SelectedValuePath="ID" DisplayMemberPath="Info" SelectedItem="{Binding SelectLocation}" />
对应的ViewModel文件
public class LocationRoad { public int ID { set; get; } public string Code { set; get; } public string Info { set; get; } } // /// 当ComboBox选中项更改时发生 /// private LocationRoad _selectLocation; public LocationRoad SelectLocation { get { return this._selectLocation; } set { this._selectLocation = value; if (this.PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("SelectLocation")); } } private ObservableCollection _locationRoad = null; public ObservableCollection LocationSource { get { if (this._locationRoad == null) { this._locationRoad = new ObservableCollection() { new LocationRoad() { ID = 1, Code = "NGQ", Info = "南岗区" }, new LocationRoad() { ID = 2, Code = "DLQ", Info = "道里区" }, new LocationRoad() { ID = 3, Code = "DWQ", Info = "道外区" }, new LocationRoad() { ID = 4, Code = "PFQ", Info = "平房区" }, new LocationRoad() { ID = 5, Code = "XFQ", Info = "香坊区" }, }; } return this._locationRoad; } set { this._locationRoad = value; if (this.PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs("LocationSource")); } }
如果要进行双向绑定或其他的绑定方式,只要更改上面binging块中的Mode方式就可以了。一般用不到吧?
出处:https://bbs.csdn.net/topics/390091439
============================================
我根据上面的代码,做了一点修改
<ComboBox Name="CbClientType" SelectedIndex="0" SelectedValuePath="Code" DisplayMemberPath="Descript"
SelectedItem="{Binding CbClientTypeSelectedItem}" MinWidth="70"></ComboBox>
public CustomNodeItem _CbClientTypeSelectedItem; public CustomNodeItem CbClientTypeSelectedItem { get { return _CbClientTypeSelectedItem; } set { _CbClientTypeSelectedItem = value; //if (SelectCallBack != null) //{ // SelectCallBack(value); //} NotifyOfPropertyChange(); } } private List<CustomNodeItem> _CbClientType; public List<CustomNodeItem> CbClientType { get { return _CbClientType; } set { _CbClientType = value; if (value != null && value.Count > 0 && CbClientTypeSelectedItem == null) { CbClientTypeSelectedItem = value.First(); } NotifyOfPropertyChange(); } } //在按钮的事件中获取选择项 public void BtnTest() { string msg = CbClientTypeSelectedItem.Descript; MessageBox.Show(msg); }
原文地址:https://www.cnblogs.com/mq0036/p/12552792.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- DNSmasq简单部署
- Ubuntu19.10 下部署邮件系统
- GitLab 初次搭建使用教程
- Vue中鼠标事件
- gitlab添加ssh-keys之后克隆依然需要输入密码
- VM虚拟机系统自定义分区
- k8s问题记录
- Hexo博客Next主题浏览统计不显示
- 视频上云网关平台EasyCVR使用海康SDK拉流协议分析
- 计算机网络物理层习题
- 从数据库中查询马上过生日的人并统计各年龄段及性别所占的人数
- Ubuntu19.10 中安装 JDK
- 在 Ubuntu19.10 上安装 wine 并安装 QQ 等软件
- wordpress迁移至hugo及其自动化发布文章全记录
- 视频流媒体平台EasyNVR硬件设备使用华科云arm版如何修改为固定IP?