2009-07-28 7 views
2

IsolatedStorageのAvailableFreeSpaceの値を示す単純なテキストブロックを表示しようとしています。IsolatedStorageFile変数へのバインドSilverlightのAvailableFreeSpace

です。System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()AvailableFreeSpace

これは、動的に利用可能なストレージの変更として更新する必要があります。

これはおそらく基本的なことですが、この変数にバインドする方法を理解できません。何かヒント?

答えて

1

IsolatedStorageFile.AvailableFreeSpaceのようなプレーンな古いCLRオブジェクトのプロパティをTextBlock.TextのようなUIプロパティにバインドするときは、実際にはCLRプロパティの変更がUI。 SLでは、CLRオブジェクト(この場合はIsolatedStorageFile)がINotifyPropertyChangedを実装する必要があることを意味します。実装は非常に簡単です。オブジェクトにPropertyChangedというイベントを追加するだけです。あなたのケースではAvailableFreeSpaceとなる興味深い変更があるたびにそのイベントを発生させます。 IsolatedStorageFileはINotifyPropertyChangedを実装していないので、AvailableFreeSpaceが変更されたときに更新を取得しません。このインターフェイスを実装する独自のクラスを作成し、タイマベースのポーリングのようなメカニズムを使用してIsolatedStorageFile.AvailableFreeSpaceを定期的にチェックし、独自のAvailableFreeSpaceプロパティの変更を反映する必要があります。個人的には、書き込み操作後の空き領域をチェックし、カスタムのAvailableFreeSpaceプロパティで作成したクラスに変更を報告するカスタムクラスを使用して、独立したストレージへのすべての書き込み呼び出しを実行し、代わりにPropertyChangedイベントを発生させます定期的にタイマーを使用してチェックします。

+0

ありがとうございます。あなたが示唆していることは意味があります。私はそれがより簡単になることを望んでいた... –

関連する問題