私はできるだけTDDを使用できるようにcaliburn.microを使用してWPFアプリケーションを開始したいと思っています。以前はWP7でcaliburn.microを使用しましたが、WPFは別の船であるようですが、その文書はWP7ほど完全ではありません。Caliburn Micro WPFウィンドウ管理
私は私のブートストラップ
public class ApplicationBootstrapper : Bootstrapper
{
private SimpleContainer _container;
private WindowManager _windowManager;
protected override void Configure()
{
_container = new SimpleContainer();
_windowManager = new WindowManager();
_container.RegisterSingleton(typeof(MainViewModel), "MainViewModel", typeof(MainViewModel));
_container.RegisterSingleton(typeof(DataViewModel), "DataViewModel", typeof(DataViewModel));
}
protected override object GetInstance(Type service, string key)
{
return _container.GetInstance(service, key);
}
protected override IEnumerable<object> GetAllInstances(Type service)
{
return _container.GetAllInstances(service);
}
protected override void BuildUp(object instance)
{
_container.BuildUp(instance);
}
protected override void OnStartup(object sender, System.Windows.StartupEventArgs e)
{
_windowManager.ShowWindow(_container.GetInstance(typeof(MainViewModel), "MainViewModel"));
}
}
でプロジェクトを設定して、これは私が勝ったと思う製MAINVIEWの罰金を、ロードしますが、私は、その後に移動し、別のビュー/のviewmodelのセットアップを持っているしたきましたしかし、私の人生のために私は(私はWP7でのNavigationServiceで行ったように)、ウィンドウマネージャは、複数のビューをロードするために私のViewModelに通過したことをここで
は私MainViewModelコードされ得ることができませんpublic class MainViewModel : BaseViewModel
{
private readonly DataViewModel _dataViewModel;
private readonly IWindowManager _windowManager;
public MainViewModel(IWindowManager windowManager, DataViewModel dataViewModel)
{
_dataViewModel = dataViewModel;
_windowManager = windowManager;
}
public string Title { get { return ApplicationTitle; } }
public void BtnNew()
{
System.Diagnostics.Debug.WriteLine(_windowManager == null);
}
public void BtnLoad()
{
MessageBox.Show("Sorry, not yet implemented");
}
}
しかし、Window MangerとDataViewModelは常にヌルです。インターネットで検索したところ、私が利用したかったWindowManagerと、MEFBootStrapperについての情報が見つかりましたか? WP7で使用していたフレームワークの枠組みは、それよりも一歩前進していると思っていたでしょう。
単純なコンテナがあるだけで自分のサイトにcaliburn.microによって提供さrecipe、と私はあなたがIOCコンテナとウィンドウマネージャを登録didntのWP7アプリケーション
おかげで、私は自分に代わって起こって手のひらを顔に当てるを感じる:) – Technicolour