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

WPF的一些控件的触发事件记录

 <c1:C1ComboBox  Width="230"  ItemsSource="{Binding ReplaceWayList}" Style="{StaticResource ListSearch-C1ComboBox}" SelectedValueChanged="C1ComboBox_SelectedValueChanged",

下拉框事件,值改变事件,通过这个事件触发相关操作

 private void C1ComboBox_SelectedValueChanged(object sender, C1.WPF.PropertyChangedEventArgs<object> e)
        {
            var vm = DataContext as PlateReplaceApplyFormVM;
            if (vm == null)
            {
                return;
            }

//也可以直接通过控件名获取,但是表格中重复的时候就不能这样写

  string couponMode = ImpCouponMode.Text;


            var OldValue = e.OldValue;
            if (OldValue!=null)
            {
                vm.deleteAftrePartChange();
            }
         }

控件的触发值改变事件有三种、SelectedValueChanged、SelectedItemChanged、SelectedIndexChanged

我一般用前面两种SelectedValueChanged,可以直接获取变化的值,可以获取到新旧值,SelectedItemChanged是获取选中对象里面会有很多属性

 <c1:C1ComboBox Style="{StaticResource Grid-ComboBox-Nums}" ItemsSource="{Binding DisposalTypeList}" IsEnabled="{Binding IsEnable}"
                                       DisplayMemberPath="Value" SelectedValuePath="Key" Name="c1cbCheckoutType"
                                SelectedValue="{Binding Item.DisposalType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, ValidatesOnDataErrors=True,
                                NotifyOnValidationError=True}" Width="90" SelectedItemChanged="c1cbCheckoutType_SelectedItemChanged"/>

 private void c1cbCheckoutType_SelectedItemChanged(object sender, C1.WPF.PropertyChangedEventArgs<object> e)
        {

//选中的控件项转化成枚举项对象e.NewValue到Common.StatusEnum.ComboxKeyValue
            var a = sender as C1ComboBox;
            if (null != a && a.SelectedIndex == -1) return;
            if (null != ((Common.StatusEnum.ComboxKeyValue)a.SelectedItem))
            {
                _vm = DataContext as AssetDisposalDetailFormVM;
                // 选出售显示的控件
                if (((Common.StatusEnum.ComboxKeyValue)e.NewValue).Key == "1")
                {
                    spCheckoutType.Visibility = Visibility.Visible;
                    spIsContract.Visibility = Visibility.Visible;
                    spWr.Visibility = Visibility.Visible;
                    spPhone.Visibility = Visibility.Visible;
                    lbWrName.Content = "回收商";
                }
                else
                {
                    spCheckoutType.Visibility = Visibility.Hidden;
                    spIsContract.Visibility = Visibility.Collapsed;
                    _vm.Item.TaxRate = null;
                    spWr.Visibility = Visibility.Collapsed;
                    spPhone.Visibility = Visibility.Collapsed;

                }

 

}

//  利用控件的值指回旧值 CbBox.SelectedItem = e.OldValue;

 var CbBox = sender as C1ComboBox;
            var newItem = e.NewValue as KeyValue;
            if (CbBox == null || newItem == null || _vm == null)
            {
                return;
            }
            if ((newItem.Key == (int)PaymentMethodEnum.Acceptance || newItem.Key == (int)PaymentMethodEnum.Check) && _vm.SupBankIsEmpty)
            {
                MessageBoxUtil.ShowWarn("该物流商无银行账号,支付方式只能选“转账”或“现金”!");
                CbBox.SelectedItem = e.OldValue;
            }

还有表格中通过点击事件获取整行数据

Click="BtnMaterialCode_Click"

private void BtnMaterialCode_Click(object sender, RoutedEventArgs e)
        {
            var vm = DataContext as StockClassParamChangeApplyFormVM;
            if (vm == null)
            {
                return;
            }
            var testInfo = CfgReviewItem.HitTest(Mouse.GetPosition(CfgReviewItem));
            if (testInfo.Row > -1)
            {
                var selectedItem = CfgReviewItem.Rows[testInfo.Row].DataItem as StockClassParamChangeDetailLogModel;
                vm.CurrentDetailItem = selectedItem;
                vm.SelectMaterialCode();
            }
        }

还有复选框的选中和不选中事件,都是同样的处理方式

  <CheckBox IsChecked="{Binding Item.IsOutward}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"  Style="{StaticResource Grid-CheckBox}" Height="15" Width="20"/>

    private void CheckBox_Checked(object sender, System.Windows.RoutedEventArgs e)
        {
            var vm = DataContext as ProcedureScrapFormVM;
            if (vm == null)
            {
                return;
            }
            vm.SetOutProcedureScrapGroupList();
        }

相关文章:

WPF的一些控件的触发事件记录

<c1:C1ComboBox Width"230" ItemsSource"{Binding ReplaceWayList}" Style"{StaticResource ListSearch-C1ComboBox}" SelectedValueChanged"C1ComboBox_SelectedValueChanged"&#xff0c; 下拉框事件&#xff0c;值改变事件&a…...

C# 设计模式(创建型模式):建造者模式

C# 设计模式&#xff08;创建型模式&#xff09;&#xff1a;建造者模式 引言 在软件开发中&#xff0c;创建型设计模式主要关注对象的创建方式&#xff0c;其中建造者模式&#xff08;Builder Pattern&#xff09;是非常重要的一种。建造者模式通过一步一步构建一个复杂对象…...

关于模板函数的void返回值的判断:std::is_void与模板特化

int返回值的函数参数测试 #include <iostream> #include <functional>int return_int_func(){std::cout << __func__ << std::endl << std::flush;return 10086; }template<class U> auto CallDeviceMethodShort(std::function<U()&g…...

重现ORA-01555 细说Oracle Undo 数据管理

1. 概述 1.1. Undo 数据应用 undo数据是&#xff1a; 原始的、修改之前的数据副本 是针对更改数据的每个事务处理所捕获的 至少保留到事务处理结束 用于支持&#xff1a; 回退操作 读取一致性查询 闪回查询、闪回事务处理和闪回表 从失败的事务处理中进行恢复 1.2. 事…...

通过blob请求后端导出文件

后端controller PostMapping("/exportPlanProject2")public void exportActive(RequestBody IfPlanListDTO plan, HttpServletResponse httpServletResponse) throws IOException {}后端service public void exportExcel2(HttpServletResponse response) throws IOEx…...

养老院小程序怎么搭建?让老年人老有所养,老有所依!

随着社会老龄化的加剧&#xff0c;养老服务成为一个越来越重要的话题。在这个互联网的时代&#xff0c;养老院也开始拥抱技术&#xff0c;借助小程序的便捷性来改善老年人的居住和生活体验。那么&#xff0c;如何搭建一个适合老年人的养老院小程序呢?本文将从实际操作的角度出…...

【2024美国数学建模AB题原文翻译】

2024 MCM 问题A&#xff1a;资源可用性与性别比例 虽然一些动物物种超出了通常的雄性或雌性性别范畴&#xff0c;但大多数物种要么是雄性要么是雌性。尽管许多物种在出生时展现出1:1的性别比例&#xff0c;其他物种则偏离了这个性别比例&#xff0c;这被称为适应性性别比例变化…...

判断旗帜是否符合ISO新标准

背景介绍 在全球化的背景下&#xff0c;不同国家的旗帜设计需要满足某些国际标准以便于统一化和规范化。ISO&#xff08;国际标准化组织&#xff09;提出了一项新规定&#xff0c;要求国家旗帜在设计时遵循一些规则&#xff0c;特别是棋盘状设计中的颜色分布规则。比如&#x…...

海量数据存储实现方案设计1-mycat版

目的 这里使用mycat为例子说明方案设计思路&#xff08;仅个人学习、思考笔记&#xff09;。主要尝试解决海量数据存储、动态不停机扩容问题&#xff0c;不再受限于单库、单表、单机等。 mycat简述 mycat 主要以中间件代理的方式&#xff0c;不侵入工程代码来实现分库分表&a…...

Elasticsearch检索之三:官方推荐方案search_after检索实现(golang)

Elasticsearch8.17.0在mac上的安装 Kibana8.17.0在mac上的安装 Elasticsearch检索方案之一&#xff1a;使用fromsize实现分页 快速掌握Elasticsearch检索之二&#xff1a;滚动查询(scrool)获取全量数据(golang) 1、search_after检索 在前面的文章介绍了fromsize的普通分页…...

hot100_238. 除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

软件测试基础详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 “尽早的介入测试&#xff0c;遇到问题的解决成本就越低” 随着软件测试技术的发展&#xff0c;测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷&#xff0c;…...

MySQL 备份方案设计之准备事项

MySQL 备份方案设计之准备事项 文章目录 MySQL 备份方案设计之准备事项1.选择合适的备份工具2.其他需要考虑的因素推荐资料 1.选择合适的备份工具 工欲善其事&#xff0c;必先利其器。 目前市面上的 MySQL 备份工具也有很多&#xff0c;整理如下&#xff08;仅供参考&#xff…...

《计算机网络A》单选题-复习题库解析-最终

目录 151、信道容量计算公式“CW*log2&#xff08;1S/N&#xff09;”中&#xff0c;“S/N”表示&#xff08; &#xff09; 152、下面哪一种编码方式不包含同步时钟信息&#xff08; &#xff09; 153、子网划分的根本目的是&#xff08; &#xff09; 154、在传统以太…...

向 SwiftUI 视图注入 managedObjectContext 环境变量导致 Xcode 预览(Preview)崩溃的解决

问题现象 从 SwiftUI 诞生到现在,我们这些秃头码农们早已都习惯了在 Xcode 预览中调试 App 界面了。不过,对于某些场景下向 SwiftUI 视图传递 managedObjectContext 环境变量(environment)总是会导致 Xcode 预览崩溃,这是怎么回事呢? 如上图所示,甚至我们将一个常驻内存…...

Ruby 数据类型

Ruby 数据类型 Ruby&#xff0c;作为一种动态、开放源代码的编程语言&#xff0c;以其简洁明了的语法和强大的功能而闻名。在Ruby中&#xff0c;数据类型是编程的核心组成部分&#xff0c;它们决定了变量可以存储的信息种类以及可以对这些信息执行的操作。Ruby是一种类型安全的…...

复合机器人正以其高效、精准、灵活的特点,逐渐在汽车装配线上崭露头角

随着全球汽车制造业的快速发展&#xff0c;汽车装配线已成为衡量企业生产效率和技术水平的重要标准。传统的装配方式往往依赖于大量的人工操作&#xff0c;这不仅效率低下&#xff0c;还面临着质量不稳定、安全隐患等问题。然而&#xff0c;随着智能科技的飞速进步&#xff0c;…...

Docker + JMeter + InfluxDB + Grafana搭建压测可视化实时监控

一:简单介绍 为了解决上述问题,必须要请出了 InfluxDB + Grafana : InfluxDB :持续型数据库,有时间戳组件,以时间的形式去存储数据; Grafana :一款采用 Go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具…...

leetcode 2658. 网格图中鱼的最大数目

题目如下 数据范围 使用并查集来做这道题。 其实按照题目的意思就是让我们求每一个联通的水域可以捞到的最大权值。 我们可以从前往后遍历这个二维数组只需要判断前一个水域和上一个水域是否和当前的(i, j)联通如果有则合并水域&#xff0c;同时用一个weight数组保存每一个联…...

Java 集合 Collection、List、Set

一. Collection 单列集合 1. Collection代表单列集合&#xff0c;每个元素(数据)只包含一个值 2. Collection集合特点 ① List系列集合&#xff1a;添加的元素是有序、可重复、有索引。 ArrayList、LinekdList&#xff1a;有序、可重复&#xff0c;有索引 ② Set系列集合&…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

MySQL:分区的基本使用

目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区&#xff08;Partitioning&#xff09;是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分&#xff08;分区&#xff09;可以独立存储、管理和优化&#xff0c;…...

算法打卡第18天

从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder &#xff0c;其中 inorder 是二叉树的中序遍历&#xff0c; postorder 是同一棵树的后序遍历&#xff0c;请你构造并返回这颗 二叉树 。 示例 1: 输入&#xff1a;inorder [9,3,15,20,7…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...