- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在查看 Xamarin Sport 应用程序代码,并试图了解他们在其中所做的一些很酷的事情。我无法理解 IsDirty
正被用于确切地。它被定义 here并实现here并在许多地方使用,例如here .
我读了一些关于和ICommand
的IsDirty
属性,所以也许这是一种将整个模型称为脏模型的方法,但这有什么含义呢?
我也看到它被使用了here我假设这就是他们首先创建它的原因。
谢谢大家对它的洞察。
最佳答案
他们只是将其用作处理修改检测的聪明方法。考虑“保存更改”功能;在某些事情发生变化之前,您实际上并不想启用“保存”按钮,您可以关闭 IsDirty 属性来测试它。
从技术上讲,您可以通过使用基类 Hook INotifyPropertyChanged.PropertyChanged 自己处理这个问题。并维护自己的一些脏东西(可能在基类中),而不是要求它们的所有类都有 IsDirty
他们可能需要也可能不需要的属性,他们已经把它变成了一个类可以实现的可选特性。例如,看看 GameResult举一个不能改变的例子,因此不能被标记为脏的。
使用这种方法,您可以最大限度地减少实现此功能所需编写的代码量。您需要做的所有派生类都是从 BaseNotify
派生的。 , 实现 IDirty
, 并调用 SetPropertyChanged(...)
作为设置私有(private)跟踪字段的 setter ,向任何观察者发出属性已更改的信号,并自动设置脏位。
注意:我只是做了一个有趣的观察:SetProperty
的实现扩展方法确实设置了 IsDirty
标志,BaseNotify
类(class)' IsDirty
实现不会调用任何东西来冒泡 PropertyChanged
IsDirty
的事件,这意味着对它的绑定(bind)在它更改时不会更新。我相信解决方法是让该扩展方法调用 PropertyChanged
属性名称为“IsDirty”:
if(dirty != null) {
dirty.IsDirty = true;
handler.Invoke(sender, new PropertyChangedEventArgs("IsDirty"));
// Yes, I'm a bad person for hard-coding the name.
}
IsDirty
的信号。更改,直到您发出信号后原始属性已更改。我只是选择保持原来的逻辑。
关于mvvm - Xamarin 运动应用程序 - IsDirty 做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37190782/
在我的应用程序中,我正在更新与患者实体 1:1 关联的对象凭证。在我的 Controller 中,我调用“voucherInstance.properties = params”来绑定(bind)新值
我正在使用 Grails 3.2: class Training{ boolean clientChanged = false static transients = ['client
我正在寻找一种有效的(代码方面和运行时方面)方法来识别 JavaBean 对象是否已更改。 我正在考虑保存该类的克隆,可以根据需要与类实例进行比较。这与 CSLA.net 使用的策略类似。 问题是,是
什么是存储集合快照以供后续 IsDirty 检查的好方法(快速、高效等)? 干杯, 贝瑞尔 最佳答案 如果您只想保存快照并检查列表的大小是否发生变化(添加/删除项目) var snapshot = n
我有一个包含以下函数的 BLL 基类: public bool IsDirty { get; protected set; } internal void SetField(ref T
我有一个域类 Enquiry,其中自动生成主键 id。我有 enquiry_no 这不是主键,但我想让它成为一个唯一的自动递增字段,我需要在我的 gsp 页面中显示它。 我已经阅读了 grails 文
我正在使用 isDirty 检查是否输入了表单值(并基于此禁用其他内容)。 import { isDirty } from 'redux-form'; const mapStateToProps =
我有一个 WPF 应用程序并且正在使用 NHibernate。我的问题是如何管理变革? 我不完全确定 IsDirty 的行为。 这个link描述了我的问题。问题列出了当前环境的所有信息。 最佳答案 您
我正在开发一个系统,用户可以通过 GUI 编辑现有对象(准确地说是“过滤”域对象)。作为 UI 提示,我们只希望在用户确实修改了对象的某些内容时启用保存按钮。我想知道是否有人对这个问题有任何经验,以及
有没有人有他们认为特别有用的 IsDirty 实现?理想情况下,我希望支持撤消,但不必引入像 CSLA 这样的框架。我也更喜欢支持组合而非继承的实现。 我现在正在使用带有 ViewModel 倾斜的
我有一个可观察的供应商集合,我想将它们加载到 GridView 中,然后让用户编辑供应商的任何相关信息。我的问题是我不确定如何为供应商(模型)上可以更改的每个属性实现 IsDirty 字段。我有这样创
我正在查看 Xamarin Sport 应用程序代码,并试图了解他们在其中所做的一些很酷的事情。我无法理解 IsDirty正被用于确切地。它被定义 here并实现here并在许多地方使用,例如here
首先,我对 Laravel 不太熟悉(或者对“脏”这个词)不太熟悉。 我偶然发现了这行代码 - if ($this->isDirty('status')) { if (Notification
我有一个用 MVC4 编写的单页应用程序,它使用 pjax()将 html 推送到我页面中的各个 s 中。我有一个子表单,允许用户编辑数据,如果用户更改数据,则会在 javascript 中设置 is
在 MFC 的 CField 类中使用名称为 IsDirty() 的函数背后的原理是什么。 最佳答案 术语“干净”和“脏”在数据处理中非常常用。当您从数据库或文件系统等持久存储中接收到某个数据结构的拷
我正在尝试跟踪 JPA OneToMany 关联中的更改,以便通知订阅者某个对象的区域(这些关联之一)已更改的事件。我首先尝试对 List 进行专门化,它可以感知变化。 @OneToMany(casc
基本上就是标题所说的。当我提交表单时,我正在检查登录是否成功,如果没有,它会显示一条消息。但是,当用户开始键入时,我希望此消息消失。 有点假设 isDirty提交表单后将被清除,但它仍然是脏的。我可以
今天,我开始使用 react-hook-form 并且 isDirty 变量对我来说似乎很奇怪。尽管仅将焦点给予任何输入元素,但它始终为真。 我希望只有当输入元素的值发生变化时,isDirty 才应该
今天,我开始使用 react-hook-form 并且 isDirty 变量对我来说似乎很奇怪。尽管仅将焦点给予任何输入元素,但它始终为真。 我希望只有当输入元素的值发生变化时,isDirty 才应该
给定一个使用 WPF 双向绑定(bind)到 EF 实体对象的标准记录编辑表单 IsDirty 处理如下 entity.PropertyChanged += new System.ComponentM
我是一名优秀的程序员,十分优秀!