在后面的代码中创建设计数据上下文
Posted
技术标签:
【中文标题】在后面的代码中创建设计数据上下文【英文标题】:Creating a design datacontext in code behind 【发布时间】:2012-02-17 18:04:09 【问题描述】:我正在努力改进我在 Blend 中的设计时间体验。
我知道我可以这样做:
d:DataContext="d:DesignInstance local:vm_d, IsDesignTimeCreatable=True"
并且 blend/vs 将在设计时显示我与 vm_d 的绑定,但这似乎有些限制(即在使用 DI、泛型时,更不用说我必须手动编辑 XAML 以“改进我的设计时间经验”)。
我宁愿在后面的代码中做这样的事情:
public SimpleLoad()
InitializeComponent();
DataContext = new vm_d();
我假设一个问题是我需要设置 IsDesignTimeCreatable?无论如何,有人知道我该如何实现吗?
【问题讨论】:
【参考方案1】:在构造函数(或 PageLoaded 处理程序)中添加一些内容:
if (DesignerProperties.IsInDesignTool)
SimpleLoad();
【讨论】:
我想也许我在原始帖子中并不清楚。在您的回答中,您建议在构造函数中调用 SimpleLoad,但 SimpleLoad 是我的构造函数。我的想法是我想在构造函数中有一些逻辑来确定(取决于我们是否处于设计模式)要创建哪个视图模型(真实的或仅在设计时使用的虚拟模型)。以上是关于在后面的代码中创建设计数据上下文的主要内容,如果未能解决你的问题,请参考以下文章
为啥java代码中创建的Android Button()必须使用(this)作为上下文?