2016-03-26 13 views
0

私はWindowsアプリケーションを開発しています。 ImageSourceのプロパティCoverSourcestringのプロパティFileNameのモデルクラスがあります。私はそれらのgetterまたはsetter非同期関数を作ることができないので、両方のビューにデータがbiddenです。今私は、FileNameのセッターで、非同期関数が呼び出され、それ以降CoverSourceApplicationData.Current.LocalFolderからファイルを読み取ることによって非同期に設定されることを望みます。私はC#の初心者ですし、Googleからほとんど助けを得ていません。だから、そのような非同期関数を書いて、Javascriptのようなコールバックで呼び出す方法は?C#でawaitを使わずにLocalFolderからイメージを読み込む方法は?

+0

なぜゲッターセッターに書き込む必要がありますか?別の場所に設定してください。たとえばOnNavigatedToまたはOnLoadedメソッドの場合 – Archana

+0

別のメソッドで画像をロードし、そのコールバックでプロパティを設定して上げます。 –

答えて

0

ここでは、いくつかの相反する要件があります。まず、Windowsプラットフォーム(他の最新のモバイルプラットフォームと同様)では、ビューの更新を同期させる必要があります。 UIスレッドをブロックすることは許容されるとはみなされません。いかなる更新も即時でなければならない。第2に、ファイルの読み込みはI/Oベースの操作であり、したがって自然に非同期です。そうすれば、あなたは非ブロッキングのアプローチになります。

答えは、両方の要件が正しいことを認識することです。 UI はすぐにに更新する必要があり、ファイルI/O に任意の時間がかかります。ですから、I/Oの進行中にUIがどのように見えるかを考え、そのシナリオを意図的にデザインするのが適切な設計です。このような

何か作業をする必要があります:私ははるかに詳細に入り、このアプローチに定型コードの多くの世話をするNotifyTaskCompletionタイプを紹介しMSDN article on async data bindingを持って

​​

関連する問題