wpf mvvm模式下CommandParameter传递多参
原文:wpf mvvm模式下CommandParameter传递多参

CommandParameter一般只允许设置一次,所以如果要传递多参数,就要稍微处理一下。我暂时还没找到更好的方案,下面介绍的这个方案我是目前在用的方案,但给人的感觉总是有些别扭,不像一个正统的解决方案:

<Button.CommandParameter>
                <MultiBinding Converter="{StaticResource MultiParamterConverter}">
                    <Binding Path="ID"/>
                    <Binding Path="Name"/>
                </MultiBinding>
            </Button.CommandParameter>

转换器要这么写:

public class MultiParamterConverter : IMultiValueConverter
    {
        public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
        {
            //必须新new一个,否则拿不到数据,因为values在返回之后,就会被清空了
            return values.Clone();
        }

public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

posted on 2018-12-20 00:46 NET未来之路 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10147181.html

wpf mvvm模式下CommandParameter传递多参相关推荐

  1. C# WPF MVVM模式下在主窗体显示子窗体并获取结果

    01 - 前言 在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以: Form2 f2 = new Form2();f2.Show(); 或者 Form2 f2 = new ...

  2. WPF MVVM模式下的无阻塞刷新

    MVVM模式下的无阻塞刷新的两种方法: //传统模式下的无刷新调用(主线程开新线程,新线程又调用主线程来更新UI) //第1步先在线程内部计算出需要绑定的数据 //第2步然后再使用Invoke/Beg ...

  3. C# WPF MVVM模式Prism框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Prism提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事 ...

  4. C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 - 前言 处理同模块不同窗体之间的通信和不同模块之间不同窗体的通信,Caliburn提供了一种事件机制,可以在应用程序中低耦合的模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间 ...

  5. C# WPF MVVM模式Prism框架从零搭建(经典)

    01 - 前言 目前最新的PRISM的版本是8.1.97,本节以6.3.0.0 讲解,可以在Github上获取PRISM的源码. Prism Github地址:https://github.com/P ...

  6. WPF随笔(十四)--如何在MVVM模式下关闭窗口

    离上一篇WPF随笔有多久,再度编码WPF项目就有多久.机缘巧合又接下了一个开发WPF桌面程序的任务,又有机会详细研究之前一直忽略的细节. 今天就来谈谈如何在MVVM模式下关闭窗口. 什么?关闭窗口还要 ...

  7. WPF自学入门(十一)WPF MVVM模式Command命令 WPF自学入门(十)WPF MVVM简单介绍...

    WPF自学入门(十一)WPF MVVM模式Command命令 在WPF自学入门(十)WPF MVVM简单介绍中的示例似乎运行起来没有什么问题,也可以进行更新.但是这并不是我们使用MVVM的正确方式.正 ...

  8. MVVM模式下 DataTemplate 中控件的绑定

    今天给ListBox中通过DataTemplate生成的Button绑定命令时,一开始Button始终找不到绑定的命令.现找到了正确的绑定方式,特来记录一下. 先上个正确的示例: <ListBo ...

  9. MVVM模式下实现拖拽

    MVVM模式下实现拖拽 原文:MVVM模式下实现拖拽 在文章开始之前先看一看效果图 我们可以拖拽一个"游戏"给ListBox,并且ListBox也能接受拖拽过来的数据, 但是我们不 ...

最新文章

  1. 程序可以在硬件之间发送吗_你知道硬件、软件工程师之间,还有一个固件工程师吗?...
  2. 英伟达“暴力碾压”谷歌:53分钟训练完BERT,2.2毫秒完成推理,创下NLP三项新纪录...
  3. Android开发小问题集
  4. SpringMVC中JSP取不到ModelAndView的数据原因
  5. 荐 Intellij IDEA创建Maven Web项目(带有webapp文件夹目录的项目)
  6. mysql 5.7 hint_新特性解读 | MySQL 8.0 新增 HINT 模式
  7. oracle arp绑定mac地址,使用ARP命令来绑定IP和MAC地址
  8. 从头到尾再讲一遍ThreadLocal
  9. mysql数据库管理指导_mysql学习笔记一(数据库管理控制)
  10. java版本号分段比较_java实现的版本号比较
  11. Linux死锁检测-Lockdep
  12. Storm原理及单机安装指南
  13. 让你不差钱的9款开源网管工具
  14. MTK手机平台充电原理
  15. dll文件丢失怎么恢复?如何彻底修复?
  16. systen v消息队列(一)
  17. easyui的combobox根据拼音搜索选项
  18. gis地图图层(前台)
  19. c++initgraph函数_二次函数图像绕其顶点旋转180°后所得图像的解析式
  20. 莫纳什大学计算机工程,莫纳什大学计算机系统工程专业本科.pdf

热门文章

  1. 阿里云视频云 Retina 多媒体 AI 体验馆开张啦!
  2. 全新章节抢先读 | 揭秘覆盖全端业务的文娱大前端技术
  3. 阿里巴巴与清华大学成立联合实验室,探索下一代人机自然交互
  4. 雨中冒险:难度随时间增高的设计
  5. 学习工作即游戏:游戏化生存的现实物语
  6. 浅谈域名发散与域名收敛
  7. linux配置本地yum源 centos7.9为例
  8. 如何构建自己的游戏框架并且制作游戏
  9. 【2022年蓝桥杯】蓝桥杯第一次海选考试题(5题考试大二)(C#题解)
  10. 最长公共子序列(JAVA实现)