繁体   English   中英

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

[英]Best way to call a function in the event of a variable's value is changed?

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

我的想法是创建一个计时器,并在每个滴答事件中检查它的变量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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM