Wpf 是什么让visual studio';s designer开始提供设计时支持

Wpf 是什么让visual studio';s designer开始提供设计时支持,wpf,visual-studio,mvvm,blendability,Wpf,Visual Studio,Mvvm,Blendability,我有一个c#控件库,其中包含我的模型、视图模型和视图。我像往常一样把所有东西都连接起来,但我没有从VisualStudio的设计师那里得到任何设计时的反馈(可混合性) 当我在WPF项目中加载assambly并将视图作为自定义用户控件包含时,我将得到设计时的反馈。不幸的是,这个WPF项目只是一个测试shell,因为该视图将存在于另一个应用程序中 如果我的类库中有可混合性(设计时)支持,我的开发管道会更高效吗?是什么使得VisualStudio开始显示我的设计时数据上下文 我甚至在我的类库中使用了d

我有一个c#控件库,其中包含我的模型、视图模型和视图。我像往常一样把所有东西都连接起来,但我没有从VisualStudio的设计师那里得到任何设计时的反馈(可混合性)

当我在WPF项目中加载assambly并将视图作为自定义用户控件包含时,我将得到设计时的反馈。不幸的是,这个WPF项目只是一个测试shell,因为该视图将存在于另一个应用程序中

如果我的类库中有可混合性(设计时)支持,我的开发管道会更高效吗?是什么使得VisualStudio开始显示我的设计时数据上下文

我甚至在我的类库中使用了
d:DataContext=“{d:DesignInstance dd:DesignViewModel}”
。类库中没有设计时数据。

请重试

d:DataContext="{d:DesignInstance dd:DesignViewModel, IsDesignTimeCreatable=True}

有一个博客也可能对您有所帮助。

我发现为我的viewmodels创建一个空构造函数,或者一直创建派生类,只是为了取悦WPF设计师,这让我感到非常沮丧

例如,一个适合我的解决方案(仅在Visual Studio 2013中测试)是使用静态属性公开设计时视图模型的实例

C#代码

命名空间WpfApplication2
{
公共阶层人士
{
公众人物(字符串id)
{
Id=Id;
}
公共字符串Id{get;private set;}
}
公共静态类DesignViewModels
{
公众静态人
{
获取{返回新人员(“设计时人员id”);}
}
}
}
还有XAML



您能在编辑器中手动打开视图吗?右键单击,用“Windows演示文稿设计器”打开?我问这个问题是因为我可以双击类库中的一个XAML文件,然后得到设计器,所以我不知道为什么不能。是的,XAML文件已经加载,但没有发布设计时数据(DataContext与mockdata连接)。就像我用Xaml应用程序打开它一样,你使用的是特定的mvvm框架吗?@derek我使用MVVMlight,但我看不出它与任何框架相关,因为在这一点上,我做的是与框架无关的基本工作,例如,如果是Caliburn Micro,你需要设置Bind.AtDesignTime=“True”。对于MvvmLight,它是不同的。这就成功了。。。谢谢我差一点。。。谢谢你的帮助!