【问题标题】:providing designtime ViewModel data for Blend and VS为 Blend 和 VS 提供设计时 ViewModel 数据
【发布时间】:2009-08-26 15:41:52
【问题描述】:

在基于 MVVM 的应用程序中,我必须在设计时提供哪些选项来提供 ViewModel 数据,这样我们的设计人员才能在 Blend3(和 VS 2008)中实际看到一些东西。你是怎么做到的?我可以以某种方式使用 mc:ignorable 吗?

【问题讨论】:

    标签: mvvm blend design-time


    【解决方案1】:

    是的,Expression Blend 可以帮助您解决这个问题。使用“数据”选项卡创建与生产数据具有相同形状的示例数据。创建数据源时,请务必取消选中“在应用程序运行时启用示例数据”。

    Sample Data http://www.smips.com/brad/stackoverflow/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"

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

      • 设置设计时数据上下文

        ...

      效果很好。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 1970-01-01
        • 1970-01-01
        • 2011-03-22
        相关资源
        最近更新 更多