【问题标题】:c# make multiple different methods trigger a boolc#让多个不同的方法触发一个bool
【发布时间】:2014-12-02 13:52:57
【问题描述】:

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


【解决方案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;
    }

【讨论】:

  • 这样的想法看起来很棒,但问题是,默认事件对我不起作用,所以我使用自己的函数作为解决方法。我将如何按照您上面说明的方式订阅自定义函数?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-18
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多