在变量值发生更改时调用函数的最佳方法?



说我有 int Index = 0;。用户可以在程序的任何时候更改此值。如果这样做,我需要将所有屏幕更新为与该新索引值有关的数据。我有一个功能,我只需要帮助弄清楚如何调用它。

我的想法是创建一个计时器,在每个tick事件中,它都会检查我的变量Index的值是否已更改。如果是,请执行我的功能。但这对我来说似乎是业余爱好者。必须有更直接的东西吗?我听说过一种叫做" InotifyPropertychanged"之类的东西,但我很难找到一个很好的示例。

任何想法都非常感谢。

您可以使用事件并订阅它,然后在处理程序调用该方法中。您将这样创建事件:

public event IndexChangedEventHandler IndexChanged;
public delegate void IndexChangedEventHandler(int newValue);
protected virtual OnIndexChanged(int newValue)
{
    if (IndexChanged != null)
        IndexChanged(newValue);
}

然后使用属性包装您的索引字段,然后调用其中的事件:

private int _index;
public int Index
{
    get
    {
         return _index;
    }
    set
    {
        _index = value;
        OnIndexChanged(value);
    }
}

那么您所需要做的就是订阅以下事件:

IndexedChanged += new IndexChangedEventHandler(IndexChanged_EventHandler);
private void IndexChanged_EventHandler(int newValue)
{
    //call your update method here
}

相关内容

  • 没有找到相关文章

最新更新