お客様のリストの各行に「削除」ボタンと「キャンセル」ボタンを配置したいと思います。顧客が「変更されていない」場合、「キャンセル」ボタンは無効になります。しかし、顧客が変更された状態(「追加」、「変更済み」、「削除済み」)に移行すると、保存する前に変更を元に戻すことができるように「キャンセル」ボタンを有効にします。エンティティのEntityStateへの変更を検出するにはどうすればよいですか?
ほとんどこれはcustomer.entityAspect.propertyChanged
に加入することで可能です。プロパティの変更は、EntityState
の潜在的な変更を通知します。私はそのイベントを購読することができ、私のハンドラが顧客のエンティティに追加したことを観測できるようにisChanged
を更新させることができます。その後、私はisChanged
に有効にする "キャンセル"ボタンをバインドして、私は行きたいです。
propertyChanged
イベントは、customer.Name("New Co.");
のように、データプロパティーが変更された場合にのみ発生します。ユーザーが「削除」ボタンをクリックしたときに発生しません。 「削除」はデータプロパティに触れないcustomer.entityAspect.setDelete();
をトリガします。単に顧客のEntityState
を変更するだけです。
(1)なぜ私は「キャンセル」ボタンを制御することができ、顧客のEntityState
レイズpropertyChanged
にない変化がないと、(2)どのように私はEntityState
への変更のために聞くことができますか?
P .:私はノックアウトを使用しています。
P.P.S:この質問は以前のSOの質問"entityAspect.setDeleted doesn't fire the subscribed propertyChanged event"に触発されました。
私たちは、この機能が進むかを確認するために見ることができるチケットはありますか?私のチームは、Breezeがこれを処理すると非常に便利だと思っていました。 –
これをpropertyChangedEventに追加することをやめました。原則として、それはエンティティ・インフラストラクチャー・プロパティーではなく、ビジネス・オブジェクト・プロパティーの変更に関するものです。また、メモリリンクにつながる可能性の低いEntityManager.entityChangeイベントの使用をユーザーに推奨したいと考えています。そのネット:propertyChangedイベントの動作を変更する可能性は低いです。 – Ward
この回答に感謝します。 –