2016-12-02 37 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 
} 
相關問題