3

私はMVVMパターンを使用しており、開始日プロパティを持つPOCO(モデル内)を持っています。

WPFウィンドウ/ユーザーコントロールのコントロールに開始日からの経過時間を表示したい...

ModelView プロパティを UI コントロールにバインドし、この期間を自動的に更新する方法がわかりません...誰か方法を提案できますか?

何か (タイマーまたはスレッド) を使用して ModelView の期間プロパティを更新できますが、プロパティ値が変更されたときにのみ UI が更新されることを理解しているため、他の方法はありません。ただし、私の POCO の開始日は変更されていません。計算された値である経過時間が変更されているだけです。

何か不足していますか?

4

1 に答える 1

3

あなたは正しい軌道に乗っています。Martin Fowler のページ のプレゼンテーション モデルパターンを見てください。

基本的な考え方は、UI のモデル (ViewModel) を構築し、UI をモデルと同期させることです。UI に表示されるすべての情報は、ViewModel に対応するフィールドまたはプロパティを持つ必要があります (ただし、それらはモデルの値から取得または派生する場合があります)。ViewModel により、View State/Session State を簡単に保存できます。 (UserList 内の項目の現在の選択など) これは Model クラスの背後には存在しません。

UI に「経過時間」の値を表示したいので、ViewModel には ElapsedTimeSince という名前のプロパティが必要です。WPF ビューには、このプロパティにデータ バインドされたコントロールがあります。必要に応じて、現在の時刻とモデルの StartDate プロパティを使用してプロパティ値を定期的に再評価するスレッド/タイマー イベントがあることを確認します。UI は、更新された値を反映する必要があります。

于 2009-02-12T16:59:22.257 に答える