Xamarin Sport应用程序-IsDirty是做什么的?

hvaughan3

我正在查看Xamarin Sport应用程序代码,并试图了解他们在其中执行的一些很酷的事情。我不明白到底IsDirty是用来做什么的。它在这里定义和实现并在许多地方使用,例如here

我读了一些关于和ICommandIsDirty属性,因此也许这是一种将整个模型称为脏模型的方法,但是这有什么含义呢?

我还看到我在这里使用它,这是为什么他们首先创建它的原因。

谢谢你们对这个问题的见解。

安迪·霍珀(Andy Hopper)

他们只是将其用作处理修改检测的聪明方法。考虑“保存更改”功能;您实际上并不想启用“保存”按钮,直到发生了一些变化,然后可以关闭IsDirty属性进行测试。

从技术上讲,您可以通过拥有一个基类挂钩INotifyPropertyChanged.PropertyChanged并维护自己的脏点(可能在基类中)来自己解决问题,而不是要求其所有类具有IsDirty它们可能具有或不具有的属性需要时,它们已将其设置为类可以实现的可选功能例如,在GameResult上查看无法更改的示例,因此不能将其标记为脏。

使用这种方法,您可以最大限度地减少实现该功能所需编写的代码量。您所有的派生类需要做的就是派生自BaseNotify,ImplementIDirty和调用SetPropertyChanged(...)setter来设置私有跟踪字段,向任何观察者发出属性已更改的信号,并自动设置脏位。

注意:我只是做了一个有趣的观察:虽然SetProperty扩展方法的实现确实设置了IsDirty标志,但是BaseNotify类的IsDirty实现并未调用任何东西来冒泡的PropertyChanged事件IsDirty,这意味着与之绑定的对象将不会在其更新时更新。变化。我相信解决方法将是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更改通知,直到通知原始属性已更改为止。我只是选择保留原始逻辑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Xamarin Sport应用程序-IsDirty是做什么的?

来自分类Dev

Elixir 程序,这个程序是做什么的?

来自分类Dev

什么是非应用程序兼容 Xamarin 应用程序?

来自分类Dev

Xamarin应用程序很大,为什么而且可以更小

来自分类Dev

应用程序组件的渲染将呈现hello组件,或者它到底是做什么的?是jsx吗?

来自分类Dev

Azure链接的资源:Web应用程序+ SQL数据库。它实际上是做什么的?

来自分类Dev

类上方的“ [Xamarin.Forms.ContentProperty(“ Contents”)]]“实际上是做什么的?

来自分类Dev

在Rails应用程序中做什么?

来自分类Dev

为什么Xamarin.Forms WebView会增加Android应用程序存储数据的大小?

来自分类Dev

为什么我的Xamarin Android应用程序突然需要外部存储权限?

来自分类Dev

使用Xamarin,为什么我的应用程序设置默认为false?

来自分类Dev

当我开始调试Xamarin Android应用程序时,为什么不能达到断点?

来自分类Dev

为什么使用Xamarin Forms的iOS应用程序无法显示“真棒字体”?

来自分类Dev

为什么在使用xamarin Essentials Filepicker时应用程序关闭?

来自分类Dev

为什么我的Xamarin Android应用程序突然需要外部存储权限?

来自分类Dev

运行Xamarin Studio构建的C#应用程序,我需要什么?

来自分类Dev

为什么我的 DataTrigger 在我的 Xamarin Forms 应用程序中不起作用?

来自分类Dev

需要在 Raspbian 中安装什么才能调试 Xamarin.IoT 应用程序?

来自分类Dev

我应该将 MessageCenter 的订阅放在我的 Xamarin.Forms 应用程序中的什么位置?

来自分类Dev

xamarin.Android 应用程序中的 .cs 和 .fs 文件有什么区别?

来自分类Dev

WPF应用程序中的Xamarin Insights

来自分类Dev

Xamarin示例应用程序中的错误

来自分类Dev

Xamarin删除应用程序标题

来自分类Dev

Xamarin Forms应用程序架构

来自分类Dev

公证Xamarin.MAC应用程序

来自分类Dev

特定Xamarin应用程序的执行主题

来自分类Dev

xamarin android 的多个应用程序创建

来自分类Dev

“ #include <stdio.h>”在C程序中实际上是做什么的

来自分类Dev

MSVC 32位版本(作业)中的解码程序集。无操作是做什么的?

Related 相关文章

  1. 1

    Xamarin Sport应用程序-IsDirty是做什么的?

  2. 2

    Elixir 程序,这个程序是做什么的?

  3. 3

    什么是非应用程序兼容 Xamarin 应用程序?

  4. 4

    Xamarin应用程序很大,为什么而且可以更小

  5. 5

    应用程序组件的渲染将呈现hello组件,或者它到底是做什么的?是jsx吗?

  6. 6

    Azure链接的资源:Web应用程序+ SQL数据库。它实际上是做什么的?

  7. 7

    类上方的“ [Xamarin.Forms.ContentProperty(“ Contents”)]]“实际上是做什么的?

  8. 8

    在Rails应用程序中做什么?

  9. 9

    为什么Xamarin.Forms WebView会增加Android应用程序存储数据的大小?

  10. 10

    为什么我的Xamarin Android应用程序突然需要外部存储权限?

  11. 11

    使用Xamarin,为什么我的应用程序设置默认为false?

  12. 12

    当我开始调试Xamarin Android应用程序时,为什么不能达到断点?

  13. 13

    为什么使用Xamarin Forms的iOS应用程序无法显示“真棒字体”?

  14. 14

    为什么在使用xamarin Essentials Filepicker时应用程序关闭?

  15. 15

    为什么我的Xamarin Android应用程序突然需要外部存储权限?

  16. 16

    运行Xamarin Studio构建的C#应用程序,我需要什么?

  17. 17

    为什么我的 DataTrigger 在我的 Xamarin Forms 应用程序中不起作用?

  18. 18

    需要在 Raspbian 中安装什么才能调试 Xamarin.IoT 应用程序?

  19. 19

    我应该将 MessageCenter 的订阅放在我的 Xamarin.Forms 应用程序中的什么位置?

  20. 20

    xamarin.Android 应用程序中的 .cs 和 .fs 文件有什么区别?

  21. 21

    WPF应用程序中的Xamarin Insights

  22. 22

    Xamarin示例应用程序中的错误

  23. 23

    Xamarin删除应用程序标题

  24. 24

    Xamarin Forms应用程序架构

  25. 25

    公证Xamarin.MAC应用程序

  26. 26

    特定Xamarin应用程序的执行主题

  27. 27

    xamarin android 的多个应用程序创建

  28. 28

    “ #include <stdio.h>”在C程序中实际上是做什么的

  29. 29

    MSVC 32位版本(作业)中的解码程序集。无操作是做什么的?

热门标签

归档