记录一下ComboBox在listview中的问题,后面再解决。

在listview的ComboBox,ViewModel类得不到ComboBox的 SelectedModeIndex 和 SelectionChanged事件。

问题描述:

1. 在listview中有ComboBox

2.  数据源类 InspectionInfo ,其中有ComboBox的绑定数据源 ModelList,代码如下:

   public  class InspectionInfo : BindableBase{/// <summary>/// 模式名称列表 /// </summary>private ObservableCollection<BaseModeOption> _modelList;public ObservableCollection<BaseModeOption> ModelList{get{return _modelList;}set{SetProperty(ref _modelList, value);}}private ExamePartsStat _examePartInfo;public ExamePartsStat ExamePartInfo{get{return _examePartInfo;}set{SetProperty(ref _examePartInfo, value);}}private Inspection _currentInspection;/// <summary>/// 当前的多项检查/// </summary>public Inspection CurrentInspection{get => _currentInspection;set{SetProperty(ref _currentInspection, value);}}private int _selectedModeIndex = 0;public int SelectedModeIndex{get => _selectedModeIndex;set => SetProperty(ref _selectedModeIndex, value);}private DelegateCommand<object> _selectionModeChangedCommand;/// <summary>/// 模式改变事件/// </summary>public DelegateCommand<object> SelectionModeChangedCommand =>_selectionModeChangedCommand ??= new DelegateCommand<object>(ExecuteSelectionModeChangedCommand);/// <summary>/// 模式选择改变事件/// </summary>/// <param name="parameter"></param>private void ExecuteSelectionModeChangedCommand(object parameter){SharedViewModel shared = DI.Resolve<SharedViewModel>();shared.InvokeModeChangedCommand(SelectedModeIndex);}}

3. ViewModel类,构建了listView的数据源

private ObservableCollection<InspectionInfo> _inspectionInfoList;public ObservableCollection<InspectionInfo> InspectionInfoList{get => _inspectionInfoList;set => SetProperty(ref _inspectionInfoList, value);}

4. 页面绑定, ListView 绑定 InspectionInfoList, ComboBox的绑定数据源 ModelList,代码如下:

<ListView Grid.Row="0" Name="ItemList" ItemsSource="{Binding InspectionInfoList}" Background="#515151"  SelectedIndex="{Binding SelectedListItemIndex,Mode=TwoWay}" ><ListView.ItemContainerStyle><Style TargetType="ListViewItem"><Setter Property="Margin" Value="0,-40,0,40" /><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="ListBoxItem"><Border Background="{TemplateBinding Background}"><StackPanel ><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*"/><ColumnDefinition Width="*"/><ColumnDefinition Width="150"/></Grid.ColumnDefinitions><TextBlock Text="{Binding Path=CurrentInspection.RegistrationNo}" Foreground="White" Grid.Row="1" Grid.Column="0"  Grid.ColumnSpan="2" HorizontalAlignment="left" VerticalAlignment="Center"/><ComboBox  Style="{StaticResource ComboBoxInPanelStyle}"  ItemsSource="{Binding ModelList}"   SelectedIndex="{Binding SelectedModeIndex,Mode=TwoWay}"  SelectedValuePath="Name"  DisplayMemberPath="Name" Grid.Row="1" Grid.Column="2"  SelectedValue="{Binding SelectedValue,Mode=TwoWay}"><be:Interaction.Triggers><be:EventTrigger EventName="SelectionChanged"><prism:InvokeCommandAction Command="{Binding SelectionModeChangedCommand}"/></be:EventTrigger></be:Interaction.Triggers></ComboBox></Grid></StackPanel></Border></ControlTemplate></Setter.Value></Setter><Style.Triggers><Trigger Property="IsSelected" Value="True"><Setter Property="Background" Value="#9C71B9" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="#1D1D1D" /><Setter Property="Foreground" Value="white" /></Trigger><Trigger Property="IsEnabled" Value="False"><Setter Property="Background" Value="#757575" /><Setter Property="Foreground" Value="white" /></Trigger></Style.Triggers></Style></ListView.ItemContainerStyle><be:Interaction.Triggers><be:EventTrigger EventName="SelectionChanged"><prism:InvokeCommandAction Command="{Binding Path=ListItemChangedCommand}"/></be:EventTrigger></be:Interaction.Triggers></ListView>

5. 问题是 ComboBox的 SelectedModeIndex 和 SelectionChanged  事件只能在InspectionInfo类中的得到,在ViewModel类中得不到。没办法,只能通过事件,在ViewModel中得到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/111260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BAT030:按列表名单将路径a下的文件夹批量复制到路径b

引言&#xff1a;编写批处理程序&#xff0c;实现按列表名单将路径a下的文件夹批量复制到路径b。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击…

Minio 文件上传(后端处理同文件判断,同一文件秒传)

记录minio 文件上传 MinIO提供多个语言版本SDK的支持&#xff0c;下边找到java版本的文档&#xff1a; 地址&#xff1a;https://docs.min.io/docs/java-client-quickstart-guide.html maven依赖如下&#xff1a; XML <dependency><groupId>io.minio</groupId…

Flask Web 安装bootstrap失败pip install bootstrap

失败原因&#xff1a;网速太慢了 把公共wifi换成手机热点&#xff0c;成功&#xff1a;&#xff09; &#x1f603; 更新&#xff1a;开了手机热点还是报下面的错&#xff0c;但是把科学上网关了&#xff0c;就成功了&#xff0c;反正就是网络问题

基于nodejs+vue 衣服穿搭推荐系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

【Linux常用命令14】Linux系统监控常用命令

proc文件系统 /proc/cmdline 加载kernel时的相关指令与参数 /proc/cpuinfo CPU相关信息&#xff0c;包含频率、类型与运算功能 /proc/devices 记录了系统各个主要设备的主设备号码 /proc/filesystems 记录系统加载的文件系统 /proc/loadavg 平均负载值 top看到就是这个 /proc/…

分布式链路追踪系统Skywalking的部署和应用

一&#xff0c;背景 随着业务的扩张, 系统变得越来越复杂, 由前端、app、api,微服务,数据库,缓存,消息队列,关系数据库, 列式数据库等构成了繁杂的分布式网络. 当出现一个调用失败的问题时,要定位异常在哪个服务,需要进入每一个服务里看日志, 这个过程的复杂度和工作量是不可想…

【XSS_MSN】基于GCN的web攻击Payload识别与可解释性分析

原文标题&#xff1a;Web Attack Payload Identification and Interpretability Analysis Based on Graph Convolutional Network 原文链接&#xff1a;https://ieeexplore.ieee.org/document/10076547/ 作者单位&#xff1a;四川大学网络安全学院 相似原理论文&#xff1…

研发日常踩坑-Mysql分页数据重复 | 京东云技术团队

踩坑描述: 写分页查询接口&#xff0c;order by和limit混用的时候&#xff0c;出现了排序的混乱情况 在进行第N页查询时&#xff0c;出现与第一前面页码的数据一样的记录。 问题 在MySQL中分页查询&#xff0c;我们经常会用limit&#xff0c;如:limit(0,20)表示查询第一页的…

字节码增强技术-ASM

概述 在Java中一般是用javac命令编译源代码为字节码文件&#xff0c;一个.java文件从编译到运行的示例如图所示: 使用字节码的好处&#xff1a;一处编译&#xff0c;到处运行。java 就是典型的使用字节码作为中间语言&#xff0c;在一个地方编译了源码&#xff0c;拿着.class …

TCP/IP模型五层协议

TCP/IP模型五层协议 认识协议 约定双方进行的一种约定 协议分层 降低了学习和维护的成本&#xff08;封装&#xff09;灵活的针对这里的某一层协议进行替换 四/五层协议 五层协议的作用 应用层 应用层常见协议 应用层常见协议概览 基于TCP的协议 HTTP&#xff08;超…

MapStruct使用方法

一、用途 1.1 优势 与动态映射框架相比&#xff0c;MapStruct 具有以下优势&#xff1a; &#xff08;1&#xff09;通过使用普通方法getter、setter调用&#xff0c;而不是反射来快速执行&#xff0c;效率很高。 &#xff08;2&#xff09;编译时类型安全&#xff1a;只能映…

辅助驾驶功能开发-功能对标篇(16)-NOA 城市辅助系统-毫末智行

1.横向对标参数 厂商毫末智行车型魏牌摩卡DHT-PHEV上市时间发布:2022年8月30日 上市:2022年底前方案12V5R2L+1DMS摄像头前视摄像头*3【800W】侧视摄像头*4后视摄像头*1【800W】环视摄像头*4DMS摄像头*1雷达毫米波雷达*54D毫米波雷达/超声波雷达*12激光雷达*2【速腾聚创 M1,1…

AI绘画的魅力与未来:人工智能如何重塑艺术创作

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;AI绘画已经成为艺术与技术交汇的新领域。通过深度学习、神经网络等先进技术&#xff0c;AI不仅能理解和模拟人类艺术家的创作风格&#xff0c;还能生成令人惊叹的原创艺术作品。本文旨在探讨AI绘画的现状、挑…

ChatGPT AIGC自动生成多条件复杂计算函数

在Excel中经常会遇到多条件判断,根据不同的条件与内容显示不同的值。 例如: 需要给每个员工根据入职年限,员工等级,满意度等维度给员工发年终奖。 这在职场办公过程中经常要面临的一个问题。如销售额达到多少,取多少提成,如学生成绩在什么区间是设置为优秀还是良好等一…

python 对图片增加边框,logo贴图,获取图片exif参数,填写图片文本内容

完整代码 # 找到个可以下载免费字体的网站https://font.chi删除我naz.com/mi删除我anfei.html from PIL import Image, ImageDraw, ImageFont import exifreaddef photo_exif(image_path):f open(image_path, rb)tags exifread.process_file(f)# 打印所有照片信息&#xff0…

2023CRM排行:深度对比16款CRM

客户关系管理系统&#xff08;CRM&#xff09;作为数字化转型的重要载体&#xff0c;选择一个优秀的CRM系统将为企业未来健康增长保障。市场上CRM软件众多&#xff0c;但很难分清哪个适合自己&#xff0c;最近赶在公司选型&#xff0c;我对市场所有软件进行了一个调研&#xff…

单点登录是什么?

单点登录&#xff08;Single Sign On, SSO&#xff09;是指在同一帐号平台下的多个应用系统中&#xff0c;用户只需登录一次&#xff0c;即可访问所有相互信任的应用系统。 单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的&#xff…

异或运算.

相同为0&#xff0c;不同为1。 1 ^ 10 0 ^ 00 1 ^ 01 0 ^ 11性质&#xff1a; 0 ^ N N N ^ N 0交换、结合 a ^ b b ^ a&#xff1b; (a ^ b) ^ c a ^ (b ^ c)&#xff1b; 因此异或全部的元素的结果就是那个只出现1次的元素。 实现两个值的交换&#xff0c;而不必使…

ES6:什么是Promise

简介 在 JavaScript 开发中&#xff0c;处理异步操作是一项常见的任务。以前&#xff0c;我们经常使用回调函数来处理异步代码&#xff0c;但这种方式可能导致回调地狱和难以维护的代码。ES6 引入了 Promise&#xff0c;这是一种更优雅、更强大的处理异步操作的方式。 本文将介…

C的魅力在于指针

原有的adrv9025 代理框架很好用,在其原有的平台上做改进