c#使多种不同的方法触发布尔

c#使多种不同的方法触发布尔,c#,methods,triggers,boolean,C#,Methods,Triggers,Boolean,我试图自己捕获和处理listview的内容更改(添加、重命名、删除项目),因为没有预定义的事件来完成这项工作。我读过关于在所有做更改的函数中放置和切换bool的方法,但这是丑陋的编码,我想避免。这就是为什么我要问,是否有人知道如何将多个方法注册为bool的触发器,这反过来会告诉我们是否进行了相当大的更改,类似于下面的伪代码: bool changesDetected = false; void AddItem() {...} void RenameItem() {...} void Remov

我试图自己捕获和处理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
   }
}

任何想法都将不胜感激

您可以创建自己的委托、事件和事件处理程序,并调用方法来捕获更改。但是,我认为您需要的是一种处理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;
    }