2010-03-19 218 views
0

我想在我的基于C#的应用程序中添加一个进度条。我想知道在特定事件中更新其价值的好方法是什么? 我的问题是,我有单一的功能在UI中完成所有的处理。这个功能反过来调用更多的功能,创建对象,更新数据库等(基本上执行所有工作)并返回输出文件中的值。我只能访问该功能。那么在这个如何在每一步结束时更新进度条的值?如何更改C#中progressbar的值?

这种情况的最佳做法是什么?保持UI逻辑和业务逻辑独立的好方法是什么?我想避免在我的库代码中写入与进度条相关的代码。


请提出了一些解决方案。 感谢和问候,

回答

3

如果你有一个类是你的“工人类” - 你称为你的单一功能的类 - 然后你可以创建该类的Progress属性。然后,随着操作的进行,更新该属性的值并抛出一个事件来指示它已被更改。

您可以定义特定的ProgressChanged事件,或者如果您使用的是数据绑定,请使用INotifyPropertyChanged接口。

然后在您的用户界面中:使用数据绑定,或者专门侦听该事件并相应地更新进度条。

+0

非常感谢这样一个详细的答案。我认为使用活动的想法将起作用。 再次感谢! – Shekhar 2010-03-19 12:26:38