当您使用 Caliburn 时,您的视图会按照惯例在运行时动态获取其数据上下文集。但是,如果您也可以在设计器中设置它,这样 VS 和编译器可以验证它并为您提供 Intellisense 而不干扰 Caliburn 绑定,那就太好了。
如果我自己设置,例如:
DataContext="MyApp.MainViewModel"
我没有得到 Caliburn 绑定。
是否可以只为设计师设置?
当您使用 Caliburn 时,您的视图会按照惯例在运行时动态获取其数据上下文集。但是,如果您也可以在设计器中设置它,这样 VS 和编译器可以验证它并为您提供 Intellisense 而不干扰 Caliburn 绑定,那就太好了。
如果我自己设置,例如:
DataContext="MyApp.MainViewModel"
我没有得到 Caliburn 绑定。
是否可以只为设计师设置?
我认为您可以利用 Caliburn.Micro 提供的设计时支持。
您必须设置一个 Desinger-DataContext 并告诉 CM 在您的视图 XAML 中启用它的魔力:
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" mc:Ignorable="d" d:DataContext="{d:DesignInstance Type=vm:MainPageViewModel, IsDesignTimeCreatable=True}" cal:Bind.AtDesignTime="True"
为此,ViewModel 必须具有默认构造函数。如果这不合适,> 您还可以使用 ViewModelLocator 来创建设计时 ViewModel。
所有这些都取自Design-Time Support的文档页面。