C# 3.0 如何更改C#中progressbar的值?

C# 3.0 如何更改C#中progressbar的值?,c#-3.0,progress-bar,C# 3.0,Progress Bar,我想在基于C#的应用程序中添加一个进度条。我想知道在特定事件中更新其价值的好方法是什么? 我的问题是,我在UI中只有一个函数来完成所有的处理。这个函数依次调用更多的函数、创建对象、更新数据库等(基本上完成所有工作),并在输出文件中返回值。我只能使用该功能。那么在本例中,如何在每个步骤结束时更新progressbar的值 对于这种情况,最佳做法是什么?保持UI逻辑和业务逻辑分离的好方法是什么?我希望避免在库代码中写入progressbar相关代码 请提出一些解决办法。 感谢并问候,如果您有一个类

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

对于这种情况,最佳做法是什么?保持UI逻辑和业务逻辑分离的好方法是什么?我希望避免在库代码中写入progressbar相关代码


请提出一些解决办法。
感谢并问候,

如果您有一个类是您的“工作者类”——您通过它调用单个函数的类,那么您可以在该类上创建一个
进度
属性。然后,随着操作的进行,更新该属性的值并抛出一个事件来指示它已更改

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


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

如果您有一个类是您的“工作者类”——您通过该类调用单个函数,那么您可以在该类上创建一个
进度
属性。然后,随着操作的进行,更新该属性的值并抛出一个事件来指示它已更改

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


然后在您的UI中:要么使用数据绑定,要么专门监听该事件并相应地更新进度条。

非常感谢您提供如此详细的答案。我认为使用事件的想法会奏效。再次感谢!!!谢谢你这么详细的回答。我认为使用事件的想法会奏效。再次感谢!!!