私は単純なSLユーザーコントロールを持っています。すべての顧客を表示するリストボックスと、リストボックス内のSelectedItem(Customer)にバインドされているテキストボックスとコンボボックスの数を右側に表示します。 SelectedItemはSelectedCustomerプロパティにバインドされます。Silverlight Twowayバインドとロールバックの変更 - 方法?
私は、顧客に加えられた変更をキャンセルするためのパターン/方法論を探しています(バインドされたテキストボックスやコンボボックス内)。
編集コントロール(テキストボックスとコンボ)は、リストボックスの選択された項目に1つまたは2つの方法でバインドできます。 双方向バインドの場合、テキストボックスの即時の変更がリストボックスに反映されます。一方向にバインドされている場合、テキストボックスの変更はSelectedCustomerオブジェクトに反映されません。
編集フォームの下部には、保存、キャンセル、削除の各ボタンがあります。たとえばSaveボタンはSelectedCustomerオブジェクトを取得します(二重にバインドされていればサーバー上に保存するためのサービスを送信します)。
テキストボックスが一方向にバインドされている場合は、テキストボックスの値をキャプチャして保存するためにサーバーに送信するオブジェクトに挿入する必要があります。
twowayバインディングを使用していて、保存操作が失敗したとしたら、SelectedCustomer値を元の値に戻す必要があります。そうしないと、クライアントは保存されていないデータを表示し続けます。
このタイプのシナリオに対処するための簡単な方法があるに違いありません....
いいから、私がやったことは、私の顧客クラス、すなわちパブリック部分クラス顧客:SLアプリケーションのIEditableObjectの部分クラスを作成したことです。メソッド内では、ここで見つけたのと同様のコードをhttp://www.silverlight.net/learn/tutorials/silverlight-4/web-services-and-silverlight/#Exercise3 – David
-1の回答を受け取りましたか?コメントしてください.... Mr Smart -1 Voter ... –