私はモデルがを実装すべきではないという概念に強く同意しませんINotifyPropertyChanged
。このインターフェースはUI固有ではありません。変更を通知するだけです。実際、WPFはこれを頻繁に使用して変更を識別しますが、それがUIインターフェースであることを意味するものではありません。次のコメントと比較します。「タイヤはカーアクセサリーです」。確かにありますが、バイクやバスなども使用しています。要約すると、そのインターフェースをUIのものと見なさないでください。
そうは言っても、モデルが通知を提供する必要があると私が信じているとは限りません。実際、経験則として、必要がない限り、モデルはこのインターフェースを実装すべきではありません。サーバーデータがクライアントアプリにプッシュされないほとんどの場合、モデルは古くなる可能性があります。しかし、金融市場のデータを聞くと、モデルがインターフェースを実装できない理由がわかりません。例として、UIなどの非UIロジックがある場合、特定の値の入札価格または売値を受け取ったときにアラートを発行する(例:電子メールを介して)か、注文を出す場合はどうなりますか?これはクリーンな解決策になる可能性があります。
ただし、物事を達成する方法はいくつかありますが、私は常に単純さを優先し、冗長性を避けることを主張します。
何が良いですか?コレクションのイベントまたはビューモデルのプロパティ変更を定義し、それをモデルに伝達するか、ビューに(ビューモデルを通じて)本質的にモデルを更新させるか?
肝心なのは、「これができない、またはできない」と誰かが言っているのを見るときはいつでも、彼らが何を話しているのか分からないという兆候です。
それは本当にあなたのケースに依存し、実際にMVVMは多くの問題を抱えたフレームワークであり、MVVMの一般的な実装全体をまだ見ていません。
MVVMの多くのフレーバーと一般的な問題のいくつかの解決策を説明する時間がもっとあればいいと思います-ほとんどが他の開発者によって提供されますが、私は別の機会にそれをしなければならないでしょう。