Catel:在 ViewModel 中初始化异步后触发事件

本文关键字:事件 异步 初始化 ViewModel Catel | 更新日期: 2023-09-27 18:34:56

在我的应用程序启动时,我测试了一些与其他系统的连接。我触发事件以使视图模型了解此连接的状态。

我使用卡特TabControl来表达我的观点。我将LoadTabItems设置为"EagerLoading"并订阅 ViewModel 中的方法InitializeAsync中的事件。

问题是事件是在创建所有视图模型之前触发的。如何在初始化所有视图模型以检查连接并触发事件时获得通知。

Catel:在 ViewModel 中初始化异步后触发事件

我建议您创建一个名为 ConnectionManager 的服务或管理器。这将检查事件(因为这是一个长期存在的对象,可能在 IoC 容器中注册(。然后在您的 VM 中,无论事件是否已触发,连接管理器都会为您提供答案。

请记住,视图模型是短暂存在的对象(一旦视图消失,它们就会消失(。如果要维护状态,请使用管理器/服务。