.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. VueJSアクセスモデルからメソッド
- 3. codeigniterライブラリからのアクセスモデル
- 4. アクセスモデル
- 5. ビューのobservablecollectionからのMVVMバインディングコンテンツコントロール
- 6. WPF MVVM別のビューから開く
- 7. WPF MVVMビューのリダイレクトをViewModelから
- 8. silverlight MVVMビュー内のビュー
- 9. MVVM - コントロール対ビュー
- 10. アクセスモデルはjavascript LARAVELですか?
- 11. MVVM ViewModel and childビュー
- 12. MVVMの1つのビューから別のビューのビューモデルにプロパティを渡す
- 13. MVVMナビゲーションの親ビューと子ビュー
- 14. WPVMのMVVMでビューモデルからビューへの通信方法
- 15. アプリケーションエラー処理中のアクセスモデル
- 16. 個別のビューがバックグラウンドワーカーから更新されないMvvm
- 17. MVVMからビューへのバインドがプリズムで機能しない
- 18. SimpleIoc MVVM解決ビュー(UserControl)
- 19. MVVM複数のビューPrismの同じViewModel
- 20. WPF MVVMでのビュー間の移動
- 21. MVVM Light for WPFのビューの配線
- 22. プリズムmvvmシナリオのビューとしてのvisual3d
- 23. MVVMのビューを制御する
- 24. ViewModelsからのMVVMナビゲーション
- 25. MVVM TabControlItemsへのビューのバインド - ビューが表示されない
- 26. MVVMのListViewからWpfの異なるビュー(サムネイル、詳細リスト)を表示
- 27. WPVM MVVMを使用して1つのビューから別のビューへ移動する
- 28. MVVMパターンのビューの特定のモデルですか?
- 29. MVVM - ビューモデルをビューにバインドするには
- 30. MVVMで「ルックレス」ビューを作成する
さて、私はその答えがそのようなものだと思った。しかし、私はまだいくつかの問題があります。 タイプ1のビュー1をクリックすると、対応するモデルをビューモデルに保存します。 A型のビュー2をクリックすると、対応するモデルを同じviewmodelに保存することもできます。これまでのところ、私はモデルではなく(ビュー)自身を保存する方法しか知りません:/ – Andreas