Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 4.0 如何在Caliburn.Micro中从一个视图导航到另一个视图?_Silverlight 4.0_Caliburn.micro - Fatal编程技术网

Silverlight 4.0 如何在Caliburn.Micro中从一个视图导航到另一个视图?

Silverlight 4.0 如何在Caliburn.Micro中从一个视图导航到另一个视图?,silverlight-4.0,caliburn.micro,Silverlight 4.0,Caliburn.micro,让我这么说吧 我有一个LogInView模型和一个LogInView。ViewModel中有一个登录方法,如果用户单击视图中的按钮,就会调用该方法。现在我希望仪表板显示登录是否成功。我该怎么做?我在文档中找不到对此的明确答案。我假设您的仪表板本质上就是您的外壳。在这种情况下,您可以引导LoginViewModel,在登录方法中,成功登录后,您可以显示仪表板ViewModel并使用Caliburn.Micro WindowManager关闭LoginViewModel 类似于使用MEF: Boot

让我这么说吧


我有一个LogInView模型和一个LogInView。ViewModel中有一个登录方法,如果用户单击视图中的按钮,就会调用该方法。现在我希望仪表板显示登录是否成功。我该怎么做?我在文档中找不到对此的明确答案。

我假设您的仪表板本质上就是您的外壳。在这种情况下,您可以引导LoginViewModel,在登录方法中,成功登录后,您可以显示仪表板ViewModel并使用Caliburn.Micro WindowManager关闭LoginViewModel

类似于使用MEF:

Bootstrapper.cs

public class Bootstrapper : Caliburn.Micro.Bootstrapper<ILoginViewModel>
{
  ...
}

我假设你的仪表板本质上就是你的外壳。在这种情况下,您可以引导LoginViewModel,在登录方法中,成功登录后,您可以显示仪表板ViewModel并使用Caliburn.Micro WindowManager关闭LoginViewModel

类似于使用MEF:

Bootstrapper.cs

public class Bootstrapper : Caliburn.Micro.Bootstrapper<ILoginViewModel>
{
  ...
}

我刚刚在Caliburn.Micro的实验室存储库中添加了一个非常简单的登录示例SL4项目

它使用Rob Eisenberg在其游戏库示例中使用的Show类在视图之间切换

在登录方法中,它告诉my Shell您的仪表板?显示我的登录结果视图模型并设置登录结果消息

yield return Show.Child<LoginResultViewModel>().In<IShell>().Configured(c => c.ResultMessage = "Successfully logged in!");
检查我的github repo中的代码

最近我还没有使用Caliburn.Micro,所以我不是一个专家,但这种方法对我很有效

//J


编辑:这回答了如何在视图之间导航,如果您想显示一个弹出窗口以显示登录是否成功,请使用其他建议。

我刚刚在Caliburn.Micro的实验室存储库中添加了一个非常简单的登录示例SL4项目

它使用Rob Eisenberg在其游戏库示例中使用的Show类在视图之间切换

在登录方法中,它告诉my Shell您的仪表板?显示我的登录结果视图模型并设置登录结果消息

yield return Show.Child<LoginResultViewModel>().In<IShell>().Configured(c => c.ResultMessage = "Successfully logged in!");
检查我的github repo中的代码

最近我还没有使用Caliburn.Micro,所以我不是一个专家,但这种方法对我很有效

//J


编辑:这回答了如何在视图之间导航,如果您想显示一个弹出窗口以显示登录是否成功,请使用其他建议。

我还没有这样想过,但现在您提到了将仪表板作为外壳可能会解决我遇到的大多数问题。对不起,但是刚才我注意到有点不对劲。我的windowmanager.Updated上没有普通显示方法。使用Silverlight,您可以使用ShowDialog、ShowNotification和ShowPopup。ShowDialog显示指定视图模型的模式对话框,因此您可能希望切换逻辑,并引导仪表板ViewModel,然后如果用户未通过身份验证,则使用WindowManager.ShowDialog方法显示LoginViewModel,使其位于仪表板顶部。用户在成功登录之前无法通过此模式屏幕,您可以在其中关闭对话框。我还没有这样想过,但现在您提到将仪表板作为外壳可能会解决我遇到的大多数问题。很抱歉,刚才我注意到一些错误。我的windowmanager.Updated上没有普通显示方法。使用Silverlight,您可以使用ShowDialog、ShowNotification和ShowPopup。ShowDialog显示指定视图模型的模式对话框,因此您可能希望切换逻辑,并引导仪表板ViewModel,然后如果用户未通过身份验证,则使用WindowManager.ShowDialog方法显示LoginViewModel,使其位于仪表板顶部。用户在成功登录之前将无法通过此模式屏幕,您可以在其中关闭对话框。谢谢,这将在以后证明非常有用。谢谢,这将在以后证明非常有用。