【发布时间】:2021-09-08 12:18:18
【问题描述】:
我是一名 .Net 开发人员,最近与我的一位 Java 开发人员交谈。
我正在解释 WPF MVVM 以及如何在视图中更新属性,不仅必须对其进行数据绑定,还必须触发“OnPropertyChanged”事件处理程序。
他很震惊没有现成的包装纸。例如,他告诉我Java中有“Observable String”,如果后端发生更改,它会自动知道更新视图中的值。
(我知道可观察的集合,但即使是它们也必须明确地被赋予一个事件处理程序以在集合更改时调用)
他声称 Java 中的这些“可观察对象”不需要任何特殊设置,也不需要提供事件处理程序来调用,默认情况下,它们仅在声明/初始化后更新视图。
在 WPF MVVM 中是否有这样的事情,我做错了还是在 Java 中根本不是这样?
【问题讨论】:
-
很多框架都可以做到这一点reactiveui.net
-
你的好友使用了
RxJava,它是用多种语言实现的。你可以在reactivex.io/languages.html学习它 -
“可观察的集合,但即使是它们也必须明确地被赋予一个事件处理程序,以便在集合更改时调用” - 这是一种误解。您只需使用 ObservableCollection 代替其他一些 List 类型。具有绑定到此类集合的属性的 UI 元素将自动注册事件处理程序。您无需手动执行任何操作。
-
@Clemens,哦,我想我们需要为“CollectionChanged”事件提供一个处理程序。