当前位置: 首页 > news >正文

【转】【WPF】WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel

将所有的事件,属性,都映射到ViewModel中。好处多多,以后开发尽量用这种模式。

解决方法:

使用System.Windows.Interactivity.dll,添加该dll到项目引用

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

ComboBox映射的代码:

<ComboBox VerticalAlignment="Center" HorizontalAlignment="Left" MinWidth="120" Margin="10,0,0,0"
                              x:Name="cboTest" 
                              DisplayMemberPath="FamilyName"  
                              SelectedValuePath="IdFamily" 
                              IsReadOnly="True"
                              ItemsSource="{Binding ListFamily}"
                              SelectedValue="{Binding Path=ViewModel.SelectedFamilyNameID, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                              Validation.ErrorTemplate="{x:Null}"
                              Visibility="{Binding ComboBoxVisibility}"
                              >
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="SelectionChanged">
                                    <i:InvokeCommandAction Command="{Binding FamilySelectionChangedCommand}"   
                                                       CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}},Path=DataContext}"/>
                                </i:EventTrigger>
                            </i:Interaction.Triggers>
                        </ComboBox>

 

原文地址:https://www.cnblogs.com/mantian/p/3713524.html

相关文章:

  • linux内核中链表代码分析---list.h头文件分析(二)【转】
  • 时间不对导致vSAN服务无法启动
  • C# WinForm 技巧十: winfrom 全屏自适应屏幕分辨率
  • Java 软件高级工程师笔试题
  • Flask 的馈赠
  • redis的GEO实战
  • 苹果cms v10安装教程
  • Hadoop迁移MaxCompute神器之DataX-On-Hadoop使用指南
  • CentOS7源码包编译安装php7.2完整版
  • PXE安装与配置
  • 【呆鸟译Py】2018年数据科学家报告
  • jython笔记
  • mpvue 临时关闭eslint
  • ACM-ICPC 2018 焦作赛区网络预赛
  • iOS开发,轻松获取根控制器当前控制器的正确方式
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • CSS 专业技巧
  • css选择器
  • EOS是什么
  • js ES6 求数组的交集,并集,还有差集
  • laravel 用artisan创建自己的模板
  • SAP云平台里Global Account和Sub Account的关系
  • Spring Boot快速入门(一):Hello Spring Boot
  • vue从入门到进阶:计算属性computed与侦听器watch(三)
  • 关于extract.autodesk.io的一些说明
  • 基于组件的设计工作流与界面抽象
  • 类orAPI - 收藏集 - 掘金
  • 如何将自己的网站分享到QQ空间,微信,微博等等
  • ​第20课 在Android Native开发中加入新的C++类
  • ###C语言程序设计-----C语言学习(3)#
  • #{}和${}的区别是什么 -- java面试
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • $NOIp2018$劝退记
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)程序员疫苗:代码注入
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .net CHARTING图表控件下载地址
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET MVC 验证码
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET分布式缓存Memcached从入门到实战
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • .NET连接MongoDB数据库实例教程
  • .Net下的签名与混淆
  • .net专家(张羿专栏)
  • @NestedConfigurationProperty 注解用法
  • [@Controller]4 详解@ModelAttribute
  • [1204 寻找子串位置] 解题报告