2017-08-14 16 views
0

我的问题与标题中的完全相同。 我开始使用Caliburn.Micro进行MVVM方法(这对我来说也是新的),并且在每个教程中,第一步是删除默认的MainWindow.xaml文件并创建一个新的UserControl文件。这是为什么? UserControl甚至不接受标题。难道不可能使用普通的Windows构建应用程序吗?我已经尝试过,但每次启动时都会出现错误“无法找到ViewModel的视图”,尽管MainView.xaml和MainViewModel.cs都存在。当我为它创建一对USerControl和ViewModel时,一切都开始按预期工作。那么,为什么Windows不工作? 这不会是一个问题,但我认为像WPF现代用户界面主题的一些补充可能无法在没有窗口的情况下工作。我不确定这一点。Caliburn.Micro - 为什么使用UserControl而不是窗口

可能有一种解决方案是在窗口内部显示一个已定义的UserControl视图,但这只是一种解决方法。

+1

卡利为您创建一个窗口,和主机您的用户控制。这是正确的方法。您可以轻松更换用户控件,或在同一个窗口中托管多个用户控件。 – Eternal21

+0

@ Eternal21谢谢,我不知道。但是如果我想更改我的主窗口的某些设置(如更改标题,图标等)呢? – Loreno

+0

下面是你如何做到这一点:https://claytonone.wordpress.com/2015/01/16/caliburn-micro-part-6-the-window-manager/我建议你经历整个教程,这很好。 – Eternal21

回答

1

您可以通过创建一个自定义WindowManager创建自己的自定义shell窗口:

public class CustomWindowManager : WindowManager 
{ 
    protected override Window CreateWindow(object rootModel, bool isDialog, object context, IDictionary<string, object> settings) 
    { 
     Window window = new Window(); 
     window.Title = "custom..."; 
     return window; 
    } 
} 

...你在你的引导程序进行注册:

public class HelloBootstrapper : BootstrapperBase 
{ 
    ... 

    protected override void Configure() 
    { 
     _container.Singleton<IWindowManager, CustomWindowManager>(); 
     ... 
    } 
} 
相关问题