【发布时间】:2020-06-25 08:01:49
【问题描述】:
我正在使用 C# WPF 开发一个应用程序,要求是使用 MVVM 模式,但我正在努力寻找有关如何向进度条报告进度的信息,该进度条的进度值来自另一个类,我我会尝试用代码更好地解释自己。
MainWindowVieModel.cs
//...
//...
public void StartSearch(object obj)
{
search.SearchByName(string a); //CALL TO THE METHOD IN THE SEARCH CLASS
}
//...
//...
Search.cs
public string SearchByName(string searchString){
//..
//..
for (int i = 0;i <x;i++)
{
//HERE I NEED TO REPORT I AS PROGRESS VALUE
}
}
MainWindow.xaml.cs 我将 MainWindowViewModel 绑定为 DataContext。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MainWindowViewModel();
}
}
这甚至可以实现我正在寻找的东西吗?
【问题讨论】:
-
在 Search 类中公开一个事件,然后在 SearchByName 循环中触发它。侦听器(由您决定)应该订阅该事件,然后处理一些图形。如有必要,还要考虑取消订阅事件。
-
@MarioVernari con 你提供了一个基本示例以便更好地理解?
-
所提出的答案正是我的意思。
-
您还可以将 IProgress
参数添加到 SearchByName 方法。对我来说,这比方法和事件的组合更容易使用和重用。