[英]using one popup control for every window to show progress message in WPF
我的WPF应用程序中大约有15个窗口,每个窗口都调用一个类进行操作
例如:加载,删除等,并且我不想在每个窗口中添加弹出控件。 每次操作
操作类中的方法将Window作为参数,有什么方法可以显示
操作方法在该窗口弹出操作进度信息?
或其他任何更好的方法来显示进度消息,同时显示进度消息
应该禁用该窗口以停止用户进行任何其他操作。
谢谢
用您所说的,您的状态窗口是模式窗口。 如果让所有操作类都实现用于报告进度的相同接口(我想还可以告知正在完成的操作),则可以创建一个唯一的状态窗口,以实例化该操作的完成状态,并调用与ShowDialog。
我将创建一个静态类来管理状态消息,并让主窗口在这些消息进入时进行监听。这样,只有主窗口负责显示弹出窗口,而所有其他窗口都转到一个位置以报告状态更新。
伪:
static class StatusManager
{
delegate onMessageReceivedEvent(string message);
static event onMessageReceivedEvent OnMessageReceived;
static void PostMessage(string message)
{
if(OnMessageReceived != null)
OnMessageReceived.Invoke();
}
}
在主窗口中,只需+ = OnMessageReceived并在事件后发布消息。
另外,如果您只希望状态消息一直保持到所有其他操作都完成,请保留运行窗口的计数器,并在窗口达到0时关闭弹出窗口。 您可以简单地在弹出窗口中监听事件并以这种方式更新gui。 只要记住检查调度程序以确保其安全即可更新gui。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.