为Blend和VS提供设计时的ViewModel数据

3
在基于MVVM的应用程序中,我有哪些选项可以在设计时提供ViewModel数据,以便我们的设计师可以在Blend3(和VS 2008)中看到实际内容。你是如何做到这一点的?我能否在此过程中利用mc:ignorable?
2个回答

4
是的,Expression Blend可以帮助您完成这项任务。使用“数据”选项卡创建与生产数据相同形状的示例数据。创建数据源时,请确保取消选中“在应用程序运行时启用示例数据”。
创建示例数据后,在XAML中将页面的DataContext设置为示例数据。这样设计人员在Blend中打开页面时就可以看到示例数据了。 示例数据 http://www.smips.com/brad/stackoverflow/design-model1.jpg
<navigation:Page DataContext={StaticResource MyFakeDesignData}

在Loaded处理程序的代码中,编写代码将DataContext设置为真实模型。由于此代码仅在应用程序运行时运行,并且您已告诉示例数据在应用程序运行时不可用,因此这意味着运行的应用程序将获取真实数据。
private void Home_Loaded(object sender, RoutedEventArgs e)
{
    DataContext = new MyRealViewModel();
}

3
使用VS2010,您可以使用设计时属性(适用于SL和WPF)。 我通常已经有一个模拟数据源,所以只需要:

  • 添加名称空间声明

    xmlns:d =“http://schemas.microsoft.com/expression/blend/2008”

  • 将模拟数据上下文添加到窗口/控件资源中

    <UserControl.Resources> <ViewModels:MockXViewModel x:Key =“DesignViewModel”/> </UserControl.Resources>

  • 设置设计时数据上下文

    <Grid d:DataContext =“{Binding Source = {StaticResource DesignViewModel}}”> ...

足够好用。


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