1. 需求 在 MVVM 中 ViewModel 和 View 之间的交互通常都是靠 Icommand 和 INotifyPropertyChanged,不过有时候还会需要从 MVVM 中控制 View 中的某个元素,让它获得焦点,例如这样: 上面的 gif 是我在另一篇文章 <自定义一个"传统"的 Validation.ErrorTemplate> 中的一个示例,在这个示例中我修改了 Validation.ErrorTemplate,这样在数据验证出错后,相关的控件会显示…
1. 需求 在上一篇文章 <在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点>中介绍了如何让 Validation.HasError 的控件自动获得焦点,之后引申了另一个问题:如果有多个 HasError 的控件,如何只让第一个自动获得焦点. 这需求比较常见,所以我试着解决这个问题,最终完成了一个 Demo,XAML 如下: <StackPanel local:ValidationService.IsValidationScope=&quo…
数据验证 WPF的Binding使得数据能够在数据源和目标之间流通,在数据流通的中间,便能够对数据做一些处理. 数据转换和数据验证便是在数据从源到目标 or 从目标到源 的时候对数据的验证和转换. ValidationRule 验证规则 WPF中提供了一个抽象类ValidationRule,我们自定义的验证规则都需要继承它,然后实现它的抽象 方法Validate,该方法需要返回一个ValidationResult对象来表示验证结果.举个例子,一个验证数字 的规则(输入的只能是数字) public…
原文链接:https://www.cuba-platform.com/blog/2018-10-09/945 翻译:CUBA China CUBA-Platform 官网 : https://www.cuba-platform.com CUBA China 官网 : http://cuba-platform.cn 我经常看见很多项目没有数据验证的策略和意识.他们的团队在交付日期的重压下,面对不清楚的需求,没有时间去考虑用合适并且统一的方法对数据进行验证.所以在这样的项目中,到处能看见数据验证的代…
在kettle中实现数据验证和检查 在ETL项目,输入数据通常不能保证一致性.在kettle中有一些步骤能够实现数据验证或检查.验证步骤能够在一些计算的基础上验证行货字段:过滤步骤实现数据过滤:javascript步骤能够实现更复杂的计算. 通常以某种方式查看那些数据是有缺陷的也是实用的,由于大多数ETL是无人值守执行的,所以通常ETL程序会把这些缺陷数据通知给ETL开发人员或管理员.建议把这些问题数据行保存到一个特定的公共表格中,以便跟踪这些数据:那么该表格应该包含一些元信息,如:执行转换的名…
MVC 3 数据验证 Model Validation 详解  再附加一些比较好的验证详解:(以下均为引用) 1.asp.net mvc3 的数据验证(一) - zhangkai2237 - 博客园 2.asp.net mvc3 数据验证(二)——错误信息的自定义及其本地化 - zhangkai2237 - 博客园 3.asp.net mvc3 数据验证(三)—自定义数据注解 - zhangkai2237 - 博客园 在MVC 3中 数据验证,已经应用的非常普遍,我们在web form时代需要在…
原文:WPF中ContextMenu(右键菜单)使用Command在部分控件上默认为灰色的处理方法 问题描述 今天发现如果我想在一个TextBlock弄一个右键菜单,并且使用Command绑定,结果发现默认菜单式不可用的. 问题原因 这个问题不知道算不算BUG,反正如果是在一个不可获得的焦点的东西上面使用ContextMenu,CanExecute的事件路由就会停止在ContextMenu,就没办法到达窗体上.一个解决的方案是吧CommandTarget设置到窗体上去. 事例代码 <Window…
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624.aspx  译 Q:77811970    实现虚拟模式的原因之一 DataGridView控制只检索数据,因为它是必要的. 这就是所谓的 即时数据加载 . 如果你正在与一个非常大的表在一个远程数据库,例如,您可能希望避免启动延迟,只检索所需的数据显示和检索额外的数据只有当用户新行滚动到视图. 如…
用户控件的目标是提供增补控件模板的设计表面,提供一种定义控件的快速方法,代价是失去了将来的灵活性.如果喜欢用户控件的功能,但需要修改使其可视化外观,使用这种方法就有问题了.例如,设想希望使用相同的颜色拾取器,但希望使用不同的“皮肤”,将其更好地融合到已有的应用程序窗口中.可以通过样式来改变用户控件的某些方面,但该控件的一些部分是在内部锁定,并硬编码到标记中.例如,无法将预览矩形移动到滑动条的左边. 解决方法是创建无外观控件——继承自控件基类,但没有设计表面的控件.相反,这个控件将其标记放到默认模…
五种情况下会刷新控件状态(刷新控件状态才能刷新所有子FWinControls的显示): 在TWinControls.PaintControls中,对所有FWinControls只是重绘了边框,而没有整个重绘这些FWinControl子控件.那么什么时候才整个重绘全部FWinControls呢?这时候,就不是一个单纯的WM_PAINT来解决控件重绘的问题了,而是这个TWinControl.UpdateShowing函数: procedure TWinControl.UpdateShowing; v…