2009-07-28 2 views
2

Я пытаюсь отобразить простой текстовый блок, который показывает значение AvailableFreeSpace из IsolStorage.Привязка к переменной IsolatedStorageFile AvailableFreeSpace в Silverlight

То есть:. System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication() AvailableFreeSpace

Она должна динамически обновляться по мере имеющихся изменений хранения.

Я знаю, что это, вероятно, базовый, но я не могу понять, как привязать эту переменную. Любые намеки?

ответ

1

Когда вы привязываете свойство на обычном старом объекте CLR, например IsolStorageFile.AvailableFreeSpace, к свойству пользовательского интерфейса, например TextBlock.Text, вам действительно нужно сделать небольшую дополнительную работу, чтобы убедиться, что изменения в свойстве CLR распространяются на пользовательский интерфейс. В SL это означает, что объект CLR (в данном случае изолированныйStorageFile) должен реализовать INotifyPropertyChanged. Реализация очень проста, просто добавьте событие в свой объект с именем PropertyChanged; затем запускайте это событие каждый раз, когда что-то интересное изменяется, которое будет доступно в FreeFormSpace в вашем случае. Поскольку IsolStorageFile не реализует INotifyPropertyChanged, вы не будете получать обновления при изменении AvailableFreeSpace. Вам необходимо создать свой собственный класс, который реализует этот интерфейс, а затем использовать какой-то механизм, например, опрос, основанный на таймерах, для регулярного проверки IsolStorageFile.AvailableFreeSpace и отражения изменений в собственном свойстве AvailableFreeSpace. Лично я буду запускать все вызовы записи в изолированное хранилище через пользовательский класс, который будет проверять свободное пространство после операции записи и сообщать об этих изменениях в класс, который вы создали, с помощью собственного свойства AvailableFreeSpace, чтобы запустить событие PropertyChanged, когда это произойдет использования таймера для периодической проверки.

+0

Thanks JC. То, что вы предлагаете, имеет смысл. Я надеялся, что это будет проще ... – 2009-07-28 23:03:21