在代码后台创建一个设计数据上下文

3

我希望能够在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个回答

0
在构造函数(或PageLoaded处理程序)中添加类似以下内容的东西:
        if (DesignerProperties.IsInDesignTool)
        {
            SimpleLoad();
        }

我觉得在我的原始帖子中可能没有表达清楚。在你的回答中,你建议在构造函数中调用SimpleLoad,但是SimpleLoad就是我的构造函数。我的想法是在构造函数中有一些逻辑来确定(根据是否处于设计模式),创建哪个视图模型(真实的或者只是一个虚拟的,在设计时使用)。 - foo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接