【发布时间】:2015-09-19 13:29:01
【问题描述】:
我正在使用 MVVM Prism 开发 wpf 应用程序。我有四个视图,MainWindow、ViewB、ViewC 和 ViewD,它们都附有各自的 ViewModel。我在应用程序启动时初始化了后台工作程序。请参阅以下后台工作人员类。
public class BackGroundThread
{
public BackgroundWorker bgWrk;
public bool stopStatus;
public int GetPercent;
public BackGroundThread()
{
bgWrk = new BackgroundWorker();
bgWrk.RunWorkerCompleted += backgroundWorker_RunWorkerCompleted;
bgWrk.ProgressChanged += backgroundWorker_ProgressChanged;
bgWrk.DoWork += bw_DoWork;
bgWrk.WorkerReportsProgress = true;
}
public void backgroundWorker_RunWorkerCompleted(object sender,RunWorkerCompletedEventArgs e) {
}
public void backgroundWorker_ProgressChanged(object sender,ProgressChangedEventArgs e)
{
Overall.EverythingOk = e.ProgressPercentage.ToString();
}
public void bw_DoWork(object sender, DoWorkEventArgs e)
{
int i = 1;
while (!stopStatus)
{
GetPercent = I;
if (i == int.MaxValue)
i = 0;
i = i + 1;
}
}
}
我从 MainWindow.xaml.cs 调用它并启动后台工作程序。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
ViewModel.MainWindowsViewModel viewModel = new ViewModel.MainWindowsViewModel();
this.DataContext = viewModel;
BackGroundThread bgT = new BackGroundThread();
bgT.bgWrk.RunWorkerAsync();
}
}
如何从视图的其余部分调用 GetPercent 变量?例如,当我导航到 ViewC 时,ViewC 使用 Label 或 TextBlock 显示实时值(值不断增加。)。然后我转到 ViewB,ViewB 还显示 GetPercent 变量的实时增量。
任何帮助,非常感谢。
谢谢
【问题讨论】:
-
你想在其他视图中显示进度条的更新值吗?
-
是的,不是进度条,只是百分比值。实际上我想在 WPF ListView 中显示。我将返回 PrimaryKeyValue 和 Percentage 值。目前不知道该怎么做。 :(