2016-12-02 98 views
1

说我有一个int Index = 0;。用户可以在程序的任何位置更改此值。当它发生时,我需要将我的所有屏幕更新为与该新索引值相关的数据。我有一个功能,我只需要帮助搞清楚如何调用它。更改变量值时调用函数的最佳方法是什么?

我的想法是创建一个计时器,并在每个滴答事件中检查我的变量Index的值是否已更改。如果是,那么执行我的功能。但是,这对我来说似乎非常业余。必须有更直接的正确的东西?我听说过一个名为“INotifyPropertyChanged”或类似的东西,但我很难找到它如何工作的一个坚实的例子。

任何想法非常感谢你。

+0

我想一个解决方法是创建一个函数,它可以让你改变整数,并立即更新你的屏幕。我很确定有更好的选择,虽然 – RandomStranger

+0

请提供我们的信息你用什么用户界面?它是WinForms,WPF还是Web? INotifyPropertyChanged与WPF连接,但实际使用它很难从描述中看出来。 –

+0

不,我不知道如何使用它,这是winforms我会更改标签 –

回答

7

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

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 
} 
相关问题