2017-08-14 18 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>(); 
     ... 
    } 
} 
相關問題