【发布时间】:2017-03-10 11:29:44
【问题描述】:
我有一个使用 Caliburn.Micro 2.0.1 的 wpf 应用程序,但我发现了 Caliburn.Micro 的奇怪行为。在最新的 3.0.3 中也存在。
重现bug的超级简单项目:https://github.com/ihtfw/CaliburnMicroBug
MainWindowViewModel 是屏幕的导体。 具有 SingletonViewModel 属性的 MainWindowViewModel 有两个 ScreenViewModel 作为 Item。 在 MainViewModel 中,我可以切换到第一个 ScreenViewModel 或第二个。
除了 SingletonViewModel 的视图在切换到第二个屏幕后仅在第二个 ScreenViewModel 上显示之外,一切都完美无缺。
复制:
- 启动应用程序
- 切换到第二个屏幕
- 切换回第一个屏幕
- SingletonViewModel 的视图未显示 =(
如何解决这个问题?
更新
无法使用 ContentControl 制作这些内容。应该使用显式视图。在这种情况下 SingletonView 并设置它的 DataContext。连接 Caliburn.Micro 动作在没有上下文的情况下绑定它们。所以结果将是:
<local:SingletonView DataContext={Binding Path=SingletonViewModel} cal:Action.TargetWithoutContext="{Binding}" />
【问题讨论】:
标签: c# .net wpf caliburn.micro