我正在使用Caliburn.Micro框架。 在其documentation page上,据说:
你必须设置一个Desinger-DataContext并告诉CM在你的视图XAML中启用它的魔力:
<Window
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:CaliburnDesignTimeData.ViewModels"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro.Platform"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance Type=vm:MainPageViewModel, IsDesignTimeCreatable=True}"
cal:Bind.AtDesignTime="True">
为此,ViewModel必须具有默认构造函数。如果这不合适,您还可以使用ViewModelLocator进行设计时ViewModel的创建。
我希望使用参数创建我的ViewModel。我如何使用ViewModelLocator?
答案 0 :(得分:0)
这是一篇关于Caliburn.Micro设计时间支持的好文章。 https://spin.atomicobject.com/2015/10/19/caliburn-micro-design-time/
基本上,您将ViewModel实例绑定到带有ViewModelLocator的d:DataContext(实现并用作转换器),通过Caliburn的内置SimpleContainer实例化ViewModels。这样您就可以使用容器设置依赖项,只需使用IoC.Get()创建视图模型的实例,然后在IValueConverter.Convert()方法中返回它。