私はSilverlight4でDataFormを使用しています。実際にはいくつかのDataFormがあり、それらは共通のRIAサービスコンテキストを共有しています。これが私が抱えている問題です...
いずれかのDataFormsでDataFieldの編集を開始し、Context.SubmitChanges()を呼び出すボタンをクリックすると、次のエラーが発生します。
�Entity 'foo' is currently being edited and has uncommitted changes.
A call to BeginEdit must be followed by a call to EndEdit or CancelEdit
before changes can be submitted.�
[変更の送信]ボタンはDataFormsの外部にあり、DataForms間で共有されるRIAサービスコンテキストに適用されることに注意してください(それぞれがタブコントロールの個別のタブにあります)。
DataFormが編集モードになっていることをコードで検出することで、この問題を回避できるようにしたいと思います。デバッグモードのとき、DataFormに次のようなプロパティがIsEditing
ありCanCancelEdit
、編集モードであることを示していることがわかりますが、これらのプロパティはコードで使用できないようです。
何か案は?