说我有int Index = 0;
。用户可以在程序的任何位置更改此值。如果是这样,我需要将所有屏幕更新为与新索引值相关的数据。我有一个功能,我只需要帮助搞清楚如何调用它。
我的想法是创建一个计时器,并在每个tick事件中检查我的变量Index
的值是否已更改。如果是,则执行我的功能。但这对我来说似乎真的很业余。必须有更正确的东西吗?我听说过一些叫做“INotifyPropertyChanged”之类的东西,但是我很难找到一个如何工作的可靠例子。
非常感谢任何想法,谢谢。
答案 0 :(得分:7)
您可以使用事件并订阅它然后在处理程序中调用该方法。您将像这样创建事件:
ret, frame = video_capture.read() //error msg **expected an intended block**
然后使用属性来包装索引字段并在其中调用事件:
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);
}
}