gpt4 book ai didi

wpf - Caliburn.Micro - 当 View 可见时做一些事情

转载 作者:行者123 更新时间:2023-12-04 15:47:32 24 4
gpt4 key购买 nike

我目前正在使用 WPF 和 Caliburn.Micro ,目前没有 MEF 或 Autofac 之类的东西。

现在我试图在 View 变得可见后立即在 View 模型中执行一些代码。

在相关教程中,此代码在显示 View 之前显示一个消息框:

protected override void OnActivate() 
{
MessageBox.Show("Page Two Activated"); //Don't do this in a real VM.
base.OnActivate();
}

艾森伯格先生接着写道:

Remember, if you have any activation logic that is dependent on the view being already loaded, you should override Screen.OnViewLoaded instead of/in combination with OnActivate.



这就是我所拥有的:
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
MessageBox.Show("OnPageTwoViewLoaded");
}

我还通过 Grid EventTrigger 和 cal:ActionMessage 进行了尝试。
但在所有三种情况下,MessageBox 都会在 View 可见之前出现。

我肯定错过了什么,我做错了什么?

最佳答案

也许不是最优雅的解决方案,但我想你可以从代码隐藏中做到这一点,因为 - 严格来说 - 这是你在这里尝试做的一个非常特定于 View /gui的事情。例如在 OnInitialized 或 OnRender 中。如果你给你的 View 一个对 EventAggregator 的引用,你可以引发一个事件并创建 View 模型 - 或者你想要的任何类,订阅这个事件并做它的事情。或者在显示 MessageBox 的情况下,除了在 View 中之外,您真的不会有任何其他地方。

关于wpf - Caliburn.Micro - 当 View 可见时做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com