2017-07-16 3 views
1

私の人物の情報を管理する私の人の情報を管理する、私は人と3つのボタンを追加/編集/削除のlistBoxの表示リストがある行を選択し、編集ボタンを押すと、 (ModifyCheck)に保存して、他のユーザーが編集しようとするとこの人物が今変更されるようにします。この人のウィンドウには2つのボタン(保存/キャンセル)があります。このウィンドウ内のすべてのコントロールをオブジェクトプロパティでバインドします。いくつかの変更と保存を行うと、その行が(ModifyCheck)から削除されます。WPFで1つのオブジェクトの変更を保存する

問題は:私は、人のウィンドウを開いて、いくつかの情報を修正する場合は

その後、私はSaveChangeを使用してModifyCheckテーブルを更新する、キャンセルを押してください。この場合、[キャンセル]を押したにもかかわらず、変更したすべての情報が更新されます。

どのようにしてModifyChheckにSaveChanges()を適用できますか?

答えて

0

エンティティプロパティをコントロールに直接バインドしないでください。同じプロパティを持つビューモデルを作成し、コントロールにバインドします。ユーザーが何らかの変更を加えると、エンティティではなくviewModelのプロパティが変更されます。ユーザーが[保存]ボタンを押すと、エンティティのフィールドを更新する必要があります。ユーザーが[キャンセル]を押すと、エンティティに何も起こりません。

簡単にするために、WinFormsアプリケーションがあるとします。すべてのTextBoxコントロールには名前があります。ユーザーは、[保存]ボタンを押すと、あなたはそれが実体に値だ代入します:

person.FirstName = textBoxFirstName.Text; 
db.SaveChanges(); 

そうでない場合は、フォームを閉じ、何もあなたの答えのためにperson

+0

感謝を変更しません、あなたは、ビューモデルを使用する方法私を導くことができてください。詳細に? –

+0

MVVMパターンを認識しておらず、WPFでの使用方法がわからない場合は、ViewModelだけを使用することはできません。 MVVPチュートリアルはこちらです:https://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish – opewix

+0

@AbdulsalamElsharif MVVMはここではあまりに複雑なトピックかもしれません。一つのことだけを理解しなければならず、ユーザーがSaveボタンを押すまでエンティティフィールドを変更しないでください。 – opewix

関連する問題