为 Blend 和 VS 提供设计时 ViewModel 数据
Posted
技术标签:
【中文标题】为 Blend 和 VS 提供设计时 ViewModel 数据【英文标题】:providing designtime ViewModel data for Blend and VS 【发布时间】:2009-08-26 15:41:52 【问题描述】:在基于 MVVM 的应用程序中,我必须在设计时提供哪些选项来提供 ViewModel 数据,这样我们的设计人员才能在 Blend3(和 VS 2008)中实际看到一些东西。你是怎么做到的?我可以以某种方式使用 mc:ignorable 吗?
【问题讨论】:
【参考方案1】:是的,Expression Blend 可以帮助您解决这个问题。使用“数据”选项卡创建与生产数据具有相同形状的示例数据。创建数据源时,请务必取消选中“在应用程序运行时启用示例数据”。
Sample Data http://www.smips.com/brad/***/design-model1.jpg
创建示例数据后,将页面的 DataContext 设置为 XAML 中的示例数据。这将让设计人员在 Blend 中打开页面时看到示例数据。
<navigation:Page DataContext=StaticResource MyFakeDesignData
在 Loaded 处理程序的代码中,编写代码以将 DataContext 设置为真实模型。由于此代码只会在应用程序运行时运行,并且您已告知示例数据在应用程序运行时不可用,这意味着正在运行的应用程序将获取真实数据。
private void Home_Loaded(object sender, RoutedEventArgs e)
DataContext = new MyRealViewModel();
【讨论】:
【参考方案2】:使用 VS2010,您可以使用 Design-Time attributes(适用于 SL 和 WPF)。无论如何,我通常都有一个模拟数据源,所以这只是一个问题:
添加命名空间声明
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
将模拟数据上下文添加到窗口/控件资源
设置设计时数据上下文
效果很好。
【讨论】:
以上是关于为 Blend 和 VS 提供设计时 ViewModel 数据的主要内容,如果未能解决你的问题,请参考以下文章
vs2010和blend 4都装好了,我怎么将Blend 4画的东西移植到我的VS2010 WPF应用程序中呢,请高手指点,谢谢