最近、MVVMの概念を使用して最初のプロジェクトを開発しています (私はWPFを使用しています)。コードを書き始める前に、 MVVMに関する多くのチュートリアル (有名なJ.Smith のチュートリアル) を読みました。コーディングを始めるまで、私が読んだものはすべて明確でした...
問題は単純です。ViewレイヤーにはTextBox
es のフォームがあります。たとえば、Name、TextBox
Surname 、Phone numberなどです。ユーザーがそれらすべてを入力して[ OK ] ボタンをクリックすると、新しい人物 (指定された個人情報を含む) をローカルデータベースに追加します( Entity FrameworkをORMとして使用します)。
これを行うには、次のように書く必要があります。
<Button Name="MyButton" Command="MyRelayCommandWhichNeedsAllOfTheTextboxes" Content="OK" />
を使用すると、 ViewからViewModelCommandParameter
に1 つのオブジェクトを渡すことができます。多くのテキストボックスがあるので、おそらく良い考えではありません。
XAMLからCommandParameter
、ユーザーが入力する必要があるフォーム全体に割り当てることができます。しかし、ViewModel内では、すべてのテキスト ボックスの名前を知る必要があります。MVVM の主な前提は、すべてのレイヤー (View、ViewModel、および Model) が独立している必要があるということです。
最善の解決策は何ですか? 入力データをフォームからViewModelに渡すにはどうすればよいですか?