我正在使用 MonoMac 在 C# 中为 Mac 构建桌面下载管理器。
我的 XIB 有一个表视图,其列绑定到NSArrayController
. 阵列控制器通过IBOutlet
. 该数组包含一堆HttpDownload
对象,这些对象派生自NSObject
. 这些HttpDownload
对象包含诸如TotalSize
、TotalDownloaded
、Bandwidth
等属性。我用属性修饰了这些[Export]
属性。
在控制器中,我将一些 HttpDownload 对象添加到NSArrayController
usingAddObject
方法中。后台进程以Task.Factory.StartNew()
异步方式开始下载,并在接收到数据时更新绑定的属性,例如 TotalDownloaded 和 Bandwidth。
我可以看到这些新值反映在表视图中,但只有在我“强制”更新 UI 时,例如通过使窗口失去焦点、获得焦点或通过单击窗口中的按钮。
我曾尝试在 IB 中设置持续更新值,但这没有任何区别(阅读文档,我认为不应该这样做)。
有谁知道让 UI “实时”更新绑定值,而不是仅在窗口事件发生时更新?