使用Caliburn时,View会按照惯例在运行时动态设置其datacontext。但是,如果你也可以在设计器中设置它以便VS和编译器可以验证它并为你提供Intellisense而不会干扰Caliburn绑定,那就太好了。
如果我自己设置,例如:
DataContext="MyApp.MainViewModel"
我没有得到Caliburn绑定。
是否可以仅为设计师设置它?
答案 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上的文档页面。