我正在使用带有 MVVM 的 WPF。我需要一些关于如何从以下架构将进度消息发送到 UI 的建议。
UI - 文件处理窗口。ViewModel - 具有 Message、ProgressValue 的属性 消息绑定到 UI 文本块,以在用户处理其他事情时更新 ui 在后台发生的事情。
当用户单击处理文件时,将调用 ViewModel ProcessFile。
视图模型直接不处理任何文件。它反过来调用一个不同的程序集来处理文件。
以下是代码片段(我无法将实际代码放在这里):
XAML:
<StackPanel>
<TextBlock Text="{Binding Message}" />
<ProgressBar MinWidth="250" Height="25" IsIndeterminate="True" />
</StackPanel>
目前我有它是不确定的。我将更改它以显示完成百分比。
视图模型
private string _message;
public string Message
{
get
{
return _message;
}
set
{
_message=value;
OnPropertyChanged("Message");
}
}
private int _progressValue;
public int ProgressValue
{
get { return _progressValue;}
set
{ _progressValue=value;
OnPropertyChanged("ProgressValue");
}
}
public void StartProcess(string fileName)
{
ThreadStart tStart = delegate()
{
differentAssembly.StartProcess(string fileName);
};
Thread processThread = new Thread(tStart);
processThread.IsBackground = true;
processThread.Start();
}
现在说了我如何从不同的Assembly 获取进度信息。这将是一条说明进度和百分比的消息。
谢谢你的帮助。