c#让多个不同的方法触发一个bool

本文关键字:一个 bool 方法 | 更新日期: 2023-09-27 18:26:01

我正试图自己捕捉和处理列表视图的内容更改(添加、重命名、删除项),因为没有预定义的事件可以完成这项工作。我读过在所有进行更改的函数中放置和切换bool的方法,但这是一种丑陋的编码,我想避免这种情况。这就是为什么我要问是否有人知道一种方法来注册多个方法作为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
   }
}

任何想法都将不胜感激!

c#让多个不同的方法触发一个bool

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