0

当您使用 Caliburn 时,您的视图会按照惯例在运行时动态获取其数据上下文集。但是,如果您也可以在设计器中设置它,这样 VS 和编译器可以验证它并为您提供 Intellisense 而不干扰 Caliburn 绑定,那就太好了。

如果我自己设置,例如:

DataContext="MyApp.MainViewModel"

我没有得到 Caliburn 绑定。

是否可以只为设计师设置?

4

1 回答 1

0

我认为您可以利用 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的文档页面。

于 2013-08-23T21:06:37.263 回答