我正在尝试显示一个简单的文本块,显示来自IsolatedStorage的AvailableFreeSpace的值。
即:System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()。AvailableFreeSpace
需要随着可用存储的变化动态更新。
我知道这可能是基本的,但我无法弄清楚如何绑定到这个变量。任何提示?
答案 0 :(得分:1)
当您将普通的旧CLR对象(如IsolatedStorageFile.AvailableFreeSpace)上的属性绑定到类似TextBlock.Text的UI属性时,您实际上需要做一些额外的工作以确保CLR属性中的更改传播到UI。在SL中,这意味着CLR对象(在本例中为IsolatedStorageFile)需要实现INotifyPropertyChanged。实现非常简单,只需向对象添加一个名为PropertyChanged的事件;然后每当有一些有趣的变化(在你的情况下是AvailableFreeSpace)时触发该事件。由于IsolatedStorageFile未实现INotifyPropertyChanged,因此当AvailableFreeSpace更改时,您将无法获得更新。您需要创建自己的实现此接口的类,然后使用某些机制(如基于计时器的轮询)定期检查IsolatedStorageFile.AvailableFreeSpace并反映您自己的AvailableFreeSpace属性中的更改。我个人会通过自定义类运行对隔离存储的所有写入调用,该类将在写入操作之后检查可用空间并将这些更改报告给使用自定义AvailableFreeSpace属性创建的类,确保在发生这种情况时触发PropertyChanged事件。使用定时器定期检查。