誰かがこれらの用語を明確にしてください。
私はそれらが非常に曖昧または文脈依存であると思います。
たとえば、アイテムリストを含むVMがあります。選択は、ボタンのアクセス可能性(つまり、コマンドを実行できる)だけでなく、VMの動作にも影響します。1つまたは複数のアイテムを同時に編集する必要があることが重要です。
2番目の例は、新しいアイテムを作成するプロセスです。
ユーザーがデータを提供した後、アイテムをアイテムコレクションに追加してリストに挿入し、選択してフォーカスを絞ります。次に、アイテムのVMのプロパティを導入してこれを行いIsSelected
ます。IsFocused
実際の仕事は、バインディング、アタッチされたプロパティ、および動作を介してビューによって実行されます。
私たちのチームの一部のメンバーは、このような種類のプロパティ(、、など)をVMに追加するIsVisible
とIsSelected
、IsFocused
UIロジックがVMにもたらされると主張していますが、UIとプレゼンテーションロジックが混在しているため、これは適切な方法ではありません。
私にとって、次のパターンは重要ですが、繰り返さないことがより重要です。DataContextを具体的なVMの型にキャストしたり、VMのメソッドを呼び出したりせずに、バインディングとコードビハインドの数行を使用することをお勧めします。
それにもかかわらず、私はHolyWarsが好きではなく、これら2つの用語の誤解と、一方を他方から分離する基準のために、私が間違っている可能性があることを認めます。