2

我正在尝试显示一个简单的文本块,该块显示来自 IsolatedStorage 的 AvailableFreeSpace 的值。

即:System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication().AvailableFreeSpace

它需要随着可用存储的变化而动态更新。

我知道这可能是基本的,但我不知道如何绑定到这个变量。有什么提示吗?

4

1 回答 1

1

当您将普通旧 CLR 对象上的属性(例如 IsolatedStorageFile.AvailableFreeSpace)绑定到 UI 属性(例如 TextBlock.Text)时,您实际上需要做一些额外的工作以确保将 CLR 属性中的更改传播到 UI。在 SL 中,这意味着 CLR 对象(在这种情况下为 IsolatedStorageFile)需要实现 INotifyPropertyChanged。实现非常简单,只需在你的对象中添加一个名为 PropertyChanged 的​​事件;然后每次发生有趣的变化时触发该事件,在您的情况下为 AvailableFreeSpace。由于IsolatedStorageFile 没有实现INotifyPropertyChanged,当AvailableFreeSpace 更改时,您将不会获得更新。您需要创建自己的实现此接口的类,然后使用基于计时器的轮询等机制来检查IsolatedStorageFile。AvailableFreeSpace 定期反映您自己的 AvailableFreeSpace 属性的变化。就我个人而言,我会通过一个自定义类运行对隔离存储的所有写入调用,该类将在写入操作后检查可用空间,并将这些更改报告给您使用自定义 AvailableFreeSpace 属性创建的类,确保在发生这种情况时触发 PropertyChanged 事件使用计时器定期检查。

于 2009-07-28T13:49:23.947 回答