可混合性从何而来?

Where does the Blendability come from?

最近几天我研究了 MVVM 并下载了几个示例。

下面这篇文章很不错,里面有源码:
更好的用户和开发人员体验——从 Windows 表单到使用 MVVM
的 WPF http://reedcopsey.com/series/windows-forms-to-mvvm/

当我在 Visual Studio 2013 年首次打开项目时,所有字段和列表都像预期的那样是空的。该程序是一个 RSS reader,我加载了一个包含大量 Feed 项目的 Feed,这些项目填充了表单中的所有字段。但现在即使我停止程序,我也可以看到设计中的所有数据。

这显然非常好,因为它更容易查看和修改设计。
我认为我所看到的包含在 Blendability 这个名称下——但我对此不确定。

现在我的问题是:这种可混合性从何而来?看了项目源码,在设计模式下没有找到数据从哪里来。

在过去的几天里,我在 Visual Studio 中安装了几个扩展,也许我安装了一些导致此行为的东西。或者这可能是这个例子中的一些特殊功能(文章中任何地方都没有提到)。

如果可能,请告诉我这种 Blendability 的来源以及我如何在自己的项目中实现它。

设计时有一个很棒的功能,如果您要将 DataContext 设置为 class,那么 class 实际上会 实例化 在设计时。

很可能这个window的DataContext是一个class,带有执行RSS阅读代码的构造函数。

以此为例:

public class MyRssReaderViewModel
{
    public MyRssReaderViewModel()
    {
        //Read RSS and populate properties
        LoadRSS();
    }

    public void LoadRSS()
    {
        ...
    }
    ...
}

现在,如果您要像这样设置 DataContext

<Window.DataContext>
    <ViewModels:MyRssReaderViewModel/>
</Window.DataContex>

设计者将在设计时实例化 class,并通过扩展调用LoadRSS 方法。任何在您的视图模型中引用属性的元素都将更新以显示绑定数据。

需要注意的一件重要事情是,class 将在您每次 构建 项目时实例化。