这份原稿.微helloindowmanager示例-视图位置不工作



HelloWindowManager Caliburn。微示例演示了将窗口(视图)显示为模态、非模态或弹出,并且工作得很好。然而,它在项目根中有视图和视图模型,所以我想整理它,让它使用视图和视图模型位置的默认约定,所以我做了以下更改:

  1. 创建了一个Views文件夹并移动了两个ShellView。xaml和DialogView。
  2. 创建ViewModels文件夹并移动匹配的ViewModels
  3. 调整了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"作为它们的命名空间。这是一个连我都打过很多次的取景器钻头。:/

注意:这只是语义,你可以把名称空间直接没有文件夹,但从项目的组织结构,它有助于更好地理解它。

最新更新