コードファースト技術を使用してエンティティをDBに永続化しようとすると問題が発生します。私がやっていることの例は、次のとおりです。MSDN Sampleアプリは、通常、1つのケースを除いて意図したとおりに動作します。SIPはEFがWP7でオブジェクトの変更を自動検出するのを防ぎます
私は既存のエンティティを持っており、TitleフィールドとAppBarアイコンを保存するTextBoxを持つページにバインドします(上記のリンクの「New Task」スクリーンショットに似ていますが、 2方向バインディングで既存のエンティティで満たされている場合)、次の問題が発生します。 TextBoxを選択してタイトルを変更して保存ボタンを押すと、メモリ内のエンティティが更新され、完全なリストに新しいタイトルが表示されるようになります。しかし、新しいタイトルはDBに保持されません(変更を自動検出しません)。これは奇妙なことです。メモリ内のオブジェクトが変更されただけでなく、TextBoxの選択を解除してからsaveを押すと、変更がDBに保持されるためです。
私はいくつかの変更の検出に関する問題を抱えているので、他にもthis.Focus()
を追加するか、保存メソッドの始めに他の要素に焦点を当てることをお勧めします。私の場合、これは助けにならない。私がTextBoxの選択を解除し、キーボードを隠す(またはthis.Focus()を行うためにバインドしたキーボードのReturnキーを押す)ために画面をタップしない限り、オブジェクトは変更されたとして検出されません。
どうすればこの問題に対処できますか?キーボードがまだ見えるときにEFがオブジェクトの変化を検出するのを止めているのは何ですか?
@Alex Kはあなたの問題を解決することができましたか? –
申し訳ありませんが、私はちょうど最後の数日が眠っていました。あなたのソリューションは私のためにそれを修正しました。ありがとうございました。 –