私はたくさんの異なるフォームとユーザーコントロールでwinformsアプリケーションを開発しています。フォーム/コントロールが終了しているとき、およびアプリケーションが終了しているときに、現在のフォーム/コントロールに保存されていない変更があることをユーザーに通知するための実装が推奨されるパターンはありますか?保存されていない変更のパターン
2
A
答えて
1
そのオブジェクトに組み込まれているいくつかの良いエンティティトラッキングを持っているので、私はORMのためLLBL世代のプロを使用しています。 私はかなりうまくいくように見えました。私は、各フォームに見エンティティのコレクションを持っている、と私はCloseForm()メソッドを持っている私のベースの制御/フォームで
public interface IClosingNotification
{
/// <summary>
/// True if there is a dirty entity (or a dirty entity in the collection) present
/// </summary>
bool DirtyEntityPresent { get; }
/// <summary>
/// Register an entity to be watched for changes
/// </summary>
/// <param name="entity"></param>
void RegisterForClosingNotification(IEntity entity);
/// <summary>
/// Register a collection to be watched for changes
/// </summary>
/// <param name="collection"></param>
void RegisterForClosingNotification(IEntityCollection collection);
/// <summary>
/// Returns true if the form should close without any notification
/// </summary>
/// <returns></returns>
bool ShouldClose();
}
: は、私は私のベースのユーザーコントロールとベースフォームを実装する新しいインターフェイスを作成しましたこれらのクラスでは、フォームが終了するときに使用します。 私のフォームでは、オブジェクトを作成するたびに閉じる通知を登録することができます。 RegisterForClosingNotification(MyCustomer);
このシナリオではうまくいきます。
1
メメントは取り消し可能な変更をカプセル化する方法です。
コミットされていないメモインスタンスのログを保存できます。
しかし、それは通常は複雑です。
通常、が最適です。
アプリケーションには、「すべての変更が保存されました」、「未保存の変更」という2つの「変更」状態があります。
各ステートには、「変更」および「保存」メソッドに基づく移行規則があります。
「保存されたすべての変更」の実装は何もしません。
保存されていない変更の実装では、状態が「すべての変更が保存されました」に設定されます。
保存されたすべての変更の実装 "変更"は、状態を未保存の変更に設定します。
「変更」の未保存の変更の実装では何も行われません。
関連する問題
- 1. EKEventEditViewControllerカレンダーの変更時に変更が保存されない
- 2. XML属性の変更は保存されない
- 3. SQLiteの変更が保存されない
- 4. rsyncに変更されていないファイルのタイムスタンプを保存する方法
- 5. エンティティフレームワークで変更が保存されない
- 6. Joomlaのエディタを変更すると、JavaScriptが保存されていない、保存されていない...回復する方法はありますか?
- 7. 変更されたEXIFデータが適切に保存されない
- 8. ファイルに印刷された変更が保存されていません。
- 9. メンバーシップ情報が変更されたaspnetdbに保存されていません
- 10. Adobe Creative SDKイメージエディタで保存されない変更のプロンプトが表示されない
- 11. updated_atタイムスタンプ何も変更されていない場合でも保存時に更新できますか?
- 12. HTML:ページが保存されているときに画像/ファイルが保存されていない
- 13. 保存されているファイルの名前を変更するには
- 14. 保存中にRichTextBoxの内容が更新されない
- 15. Wordpress - 更新時に複数のポストサムネイルが保存されない
- 16. デプロイメントイメージが変更されていない
- 17. 変更されていないファイルが
- 18. 変更された属性がない場合は、アクティブレコードモデルを保存してください
- 19. Wordpressのオプションが保存されない
- 20. ワードプレスユーザーのメタデータが保存されない
- 21. PrePersistメソッドがJPAで変更された値を保存できない
- 22. 変更を保存しないでバインドされたフォームを閉じる
- 23. 保存モードのJqueryカメラでファイルが保存されない
- 24. 現在のバッファに変更が保存されていないかどうかを確認するVimscript
- 25. JSFiddleで保存されていないJSの変更を無限ループでリカバリする方法は?
- 26. ActiveRecordの外部キーが保存されていない
- 27. NHibernateで保存されていない1対多のリスト
- 28. 変更しない変数を保存する方法
- 29. CoreData:初期保存後に文書が保存されない
- 30. オブジェクトの更新時にネストされた属性が保存されない