using System.Collections.Generic; namespace RosettaUI.UndoSystem { /// /// ListViewのアイテム削除を元に戻すためのUndoRecord /// - 削除されたアイテムのElement以下のFieldBaseElementの値を記録する /// - Undoでアイテムを元に戻し、記録した値を復元する /// - 復元時はElementの構造が変わっていない想定。DynamicElementなどで構造が変わっていると正しく復元できない可能性がある /// public abstract class UndoRecordListItemRestoreBase : UndoRecordElementBase where TRecord : UndoRecordListItemRestoreBase, new() { protected readonly List records = new(); protected void ClearRecords() { foreach (var record in records) { record.Dispose(); } records.Clear(); } public override void Dispose() { ClearRecords(); base.Dispose(); } } }