我正在尝试捕获和处理listview的内容更改(添加,重命名,删除项目),因为没有预定义的事件可以完成这项工作。我读到了在所有进行更改的函数中放置和切换bool的方法,但这是一个难看的编码,我想避免。这就是为什么我问是否有人知道一种方法来注册多个方法作为bool的触发器,这反过来告诉我是否进行了大量的更改,类似于这个伪代码:
bool changesDetected = false;
void AddItem()
{...}
void RenameItem()
{...}
void RemoveItem()
{...}
void WatchOutForChanges()
{
if(AddItemHasCompleted || RenameItemHasCompleted || RemoveItemHasCompleted)
{
changesDetected = true;
}
}
void FormClosing()
{
if(changesDetected)
{
// Save File Choice
}
}
任何想法都将不胜感激!
答案 0 :(得分:1)
您可以创建自己的委托,事件和事件处理程序,并调用方法来捕获更改。但是,我认为您正在寻找的是一种处理ListView已经存在的事件的方法(在Windows窗体中):
bool changesDetected = false;
public void Setup()
{
ListView view = new ListView();
view.AfterLabelEdit += WatchOutForChanges;
view.ControlAdded += WatchOutForChanges;
view.ControlRemoved += WatchOutForChanges;
}
public void WatchOutForChanges(object sender, EventArgs e)
{
changesDetected = true;
}