使用Caliburn自动datacontext时,是否可以在XAML中使用Intellisense?

时间:2013-08-23 15:06:43

标签: winrt-xaml caliburn.micro

使用Caliburn时,View会按照惯例在运行时动态设置其datacontext。但是,如果你也可以在设计器中设置它以便VS和编译器可以验证它并为你提供Intellisense而不会干扰Caliburn绑定,那就太好了。

如果我自己设置,例如:

DataContext="MyApp.MainViewModel"

我没有得到Caliburn绑定。

是否可以仅为设计师设置它?

1 个答案:

答案 0 :(得分:0)

我认为您可以利用Caliburn.Micro提供的 Design-Time 支持。

  

你必须设置一个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上的文档页面。