.netとMVVMのデザインモデルが初めてです。私のビューのコードビハインドファイルでは、対応するModelをオブジェクトとして取得する必要があるため、今は止まっています。ここでの関係はどうですか?それは可能なのでしょうか?それを「正しい方法で」するのですか?ビューからのMVVMアクセスモデル
答えて
ビューは、モデルをラップしてビューから隠すViewModelにアクセスする必要があります。ビューからモデルのプロパティにアクセスする必要がある場合は、ビューがバインドできるプロパティとしてモデルを公開するようにViewModelを取得します。
ViewModelは、ビューの知識が全くないはずです。 ViewはDataBindingのみを使用する必要があります。そのため、モデルまたはViewModelについての知識はありません。
ビューと対話する必要がある場合は、すべてがデータバインディングである必要があります。例外的な場合のみ、コードビハインドに頼るべきです。
ViewModelおよびにはをバインドするためにプロパティがあります。
彼はビューからモデルにアクセスしたいのですが、それ以外の方法ではありません。 –
public partial class MyView : Window
{
private MyViewModel aModel;
public MyView()
{
InitializeComponent();
aModel = new MyViewModel();
this.DataContext = aModel();
}
今、ビューはビューモデルのパブリックプロパティにバインドされたそのコントロールのデータバインディングを変更します。
MVVMでは、ビューからモデルに直接アクセスすることはできません。これは、MVVMコミュニティの一般的な誤解です。
ViewModelは、ビューがモデルに直接アクセスできるように、基になるモデルを公開することができます。
バインディング:背後に
{Binding Model.Title}
コード:
((MyViewModel)DataContext).Title
WPF Application Framework (WAF)のViewModelに(EmailClient)サンプルアプリケーションは、ビューからモデルにアクセスする方法を示しています。
- 1. パーシャルビューからのアクセスモデル
- 2. codeigniterライブラリからのアクセスモデル
- 3. アクセスモデル
- 4. ビューのobservablecollectionからのMVVMバインディングコンテンツコントロール
- 5. WPF MVVM別のビューから開く
- 6. silverlight MVVMビュー内のビュー
- 7. MVVM - コントロール対ビュー
- 8. MVVM ViewModel and childビュー
- 9. MVVMの1つのビューから別のビューのビューモデルにプロパティを渡す
- 10. MVVMナビゲーションの親ビューと子ビュー
- 11. WPVMのMVVMでビューモデルからビューへの通信方法
- 12. MVVMからビューへのバインドがプリズムで機能しない
- 13. 個別のビューがバックグラウンドワーカーから更新されないMvvm
- 14. SimpleIoc MVVM解決ビュー(UserControl)
- 15. MVVM複数のビューPrismの同じViewModel
- 16. プリズムmvvmシナリオのビューとしてのvisual3d
- 17. MVVM Light for WPFのビューの配線
- 18. WPF MVVMでのビュー間の移動
- 19. MVVMのListViewからWpfの異なるビュー(サムネイル、詳細リスト)を表示
- 20. MVVM - ビューモデルをビューにバインドするには
- 21. MVVMで「ルックレス」ビューを作成する
- 22. MVVMパターンのビューの特定のモデルですか?
- 23. ビュー内の複数のDataContext対MVVM?そうですか?
- 24. MVVM WPFビューをより小さいビューに分割する
- 25. MVVM Light - 現在のビューは表示されていますか?
- 26. MVVMでは、DataTemplatesが使用されていますUserControlsビューはビューですか?
- 27. SciChart - MVVMのコードからのズームとパンニング
- 28. MVVMパターンのSQLiteからWPFへ
- 29. WPF MVVMでの2つのビュー間の通信
- 30. MVVMビューの変更間のデータの永続化
さて、私はその答えがそのようなものだと思った。しかし、私はまだいくつかの問題があります。 タイプ1のビュー1をクリックすると、対応するモデルをビューモデルに保存します。 A型のビュー2をクリックすると、対応するモデルを同じviewmodelに保存することもできます。これまでのところ、私はモデルではなく(ビュー)自身を保存する方法しか知りません:/ – Andreas