2012-02-17 18 views
3

我正在尝试改进Blend中的设计时间体验。在代码中创建设计数据上下文

我知道我可以这样做:

d:DataContext="{d:DesignInstance local:vm_d, IsDesignTimeCreatable=True}" 

和混合/ VS会告诉我绑定在设计时vm_d,但是这似乎有点限制(即使用DI,仿制药的时候,更何况它对我来说似乎很奇怪,我必须手动编辑XAML来“改善我的设计时间体验”)。

我宁愿做的就是这样的事情在后面的代码:

public SimpleLoad() 
    { 
     InitializeComponent(); 
     DataContext = new vm_d(); 
    } 

我认为一个问题是,我需要设置IsDesignTimeCreatable?在任何情况下,有没有人有一个想法,我可以如何实现这一点?

回答

0

添加一些allong在构造函数(或PageLoaded处理程序)这些行:

 if (DesignerProperties.IsInDesignTool) 
     { 
      SimpleLoad(); 
     } 
+0

我想,也许我是不是在我原来的职位明确。在你的答案中,你建议在构造函数中调用SimpleLoad,但SimpleLoad是我的构造函数。这个想法是我想在构造函数中有一些逻辑来决定(取决于我们是否处于设计模式)要创建哪个视图模型(真实的或仅在设计时使用的模型)。 – foo 2012-02-21 16:36:35