我有一个基于MVVM设计模式的WPF应用程序。
我希望在应用程序中实现一个遵循MVVM模式的进度条。
我找到了一些使用background-worker类实现这个的解决方案。由于某些原因,我不允许使用后台工作者。
有人对如何实现这个有任何建议吗?
提前致谢
答案 0 :(得分:1)
基础知识非常简单。
查看:
<ProgressBar Value="{Binding ProgressValue}" />
视图模型:
public double ProgressValue { get/set with INPC }
但剩下的挑战是以线程安全的方式从非阻塞进程设置ViewModels ProgressValue。
你的问题缺乏细节来帮助解决这个问题。
答案 1 :(得分:1)
我希望Task
胜过背景工作者。无论如何,这是一个简单的进度条实现。
<ProgressBar Value="{Binding ProgressValue}" Maximum="100" Height="20" />
public MainViewModel()
{
Task.Run(() =>
{
while (true)
{
ProgressValue++;
Thread.Sleep(250);
}
});
}
public int ProgressValue
{
get { return _progressValue; }
set { _progressValue = value; OnPropertyChanged(); }
}
}