私はたくさんの異なるフォームとユーザーコントロールで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. キューブプラットフォームで保存されていない変更メッセージを表示しない
- 3. イメージのサイズ変更機能で何も保存されない
- 4. Datagridviewの変更がテーブルSQLite vb.netに保存されない
- 5. XML属性の変更は保存されない
- 6. XAMPPの問題?保存後にコードが変更されない
- 7. Merged CSVファイルの変更が保存されない
- 8. SQLiteの変更が保存されない
- 9. 保存後にフロントエンドでJoomlaのページが変更されない
- 10. 保存ボタンがクリックされていないと "元に戻す"データバインディングの変更
- 11. rsyncに変更されていないファイルのタイムスタンプを保存する方法
- 12. ファイルの保存場所常に更新されていない
- 13. Entity Framework 6で変更が保存されない
- 14. エンティティフレームワークで変更が保存されない
- 15. IntelliJで変更が保存されない
- 16. djangoで変更が保存されないadmin changelistビュー
- 17. Lightswitch HTML - 保存されていない変更のダイアログが表示されないようにします。
- 18. Joomlaのエディタを変更すると、JavaScriptが保存されていない、保存されていない...回復する方法はありますか?
- 19. 変更されたEXIFデータが適切に保存されない
- 20. ファイルに印刷された変更が保存されていません。
- 21. メンバーシップ情報が変更されたaspnetdbに保存されていません
- 22. Neo4j - ブラウザインターフェイスに保存されたスクリプトが保存されない
- 23. Adobe Creative SDKイメージエディタで保存されない変更のプロンプトが表示されない
- 24. ドッカーのコミットがコンテナの変更された状態を保存しない
- 25. updated_atタイムスタンプ何も変更されていない場合でも保存時に更新できますか?
- 26. 休止状態の保存後に複合IDが変更されない
- 27. HTML:ページが保存されているときに画像/ファイルが保存されていない
- 28. Yii2データベースに保存されていないが、フォルダに保存されている画像名
- 29. SQLiteにすべてのデータが保存されていない
- 30. 保存中にRichTextBoxの内容が更新されない