2010-03-19 221 views
0

我想在我的基於C#的應用程序中添加一個進度條。我想知道在特定事件中更新其價值的好方法是什麼? 我的問題是,我有單一的功能在UI中完成所有的處理。這個功能反過來調用更多的功能,創建對象,更新數據庫等(基本上執行所有工作)並返回輸出文件中的值。我只能訪問該功能。那麼在這個如何在每一步結束時更新進度條的值?如何更改C#中progressbar的值?

這種情況的最佳做法是什麼?保持UI邏輯和業務邏輯獨立的好方法是什麼?我想避免在我的庫代碼中寫入與進度條相關的代碼。


請提出了一些解決方案。 感謝和問候,

回答

3

如果你有一個類是你的「工人類」 - 你稱爲你的單一功能的類 - 然後你可以創建該類的Progress屬性。然後,隨着操作的進行,更新該屬性的值並拋出一個事件來指示它已被更改。

您可以定義特定的ProgressChanged事件,或者如果您使用的是數據綁定,請使用INotifyPropertyChanged接口。

然後在您的用戶界面中:使用數據綁定,或者專門偵聽該事件並相應地更新進度條。

+0

非常感謝這樣一個詳細的答案。我認爲使用活動的想法將起作用。 再次感謝! – Shekhar 2010-03-19 12:26:38