这份原稿.微helloindowmanager示例-视图位置不工作
本文关键字:视图 位置 工作 示例 helloindowmanager | 更新日期: 2023-09-27 18:19:23
HelloWindowManager Caliburn。微示例演示了将窗口(视图)显示为模态、非模态或弹出,并且工作得很好。然而,它在项目根中有视图和视图模型,所以我想整理它,让它使用视图和视图模型位置的默认约定,所以我做了以下更改:
- 创建了一个Views文件夹并移动了两个ShellView。xaml和DialogView。
- 创建ViewModels文件夹并移动匹配的ViewModels
- 调整了4个文件中的命名空间,以反映移动
在运行修改后的示例现在我有奇怪的行为,而"打开模式"按钮工作完美,从而证明可以找到VM的视图,打开模式和打开弹出按钮都导致消息"无法找到caliburn.Micro.HelloWindowmanager.ViewModels.DialogViewModel"
任何想法?
编辑添加:
由于没有得到任何人的回答,我修改了示例以使用SimpleContainer而不是MEF -并且它显示了与上面完全相同的行为。
。这个调用有效:var result = windowManager.ShowDialog(new DialogViewModel());
但是这两个调用导致'cannot find view…'错误信息
windowManager.ShowWindow(new DialogViewModel(), "Modeless");
windowManager.ShowPopup(new DialogViewModel(), "Popup", settings);
我是否应该以某种方式将DialogViewModel添加到SimpleContainer?
很确定我的评论就是答案…
在views文件夹中,您将需要一个名为Dialog的文件夹,在该文件夹中您将放置Modeless。xaml和Popup。两者都需要有,例如"。views . dialog . xml"。Modeless"作为它们的命名空间。这是一个连我都打过很多次的取景器钻头。:/
注意:这只是语义,你可以把名称空间直接没有文件夹,但从项目的组织结构,它有助于更好地理解它。