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();
}
}
}