可混合性从何而来?
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 将在您每次 构建 项目时实例化。
最近几天我研究了 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 将在您每次 构建 项目时实例化。