65.9K
CodeProject 正在变化。 阅读更多。
Home

Expression Blend - 玩转示例数据 (WPF, Windows Phone)

starIconstarIconstarIconstarIconstarIcon

5.00/5 (5投票s)

2014 年 7 月 23 日

CPOL

9分钟阅读

viewsIcon

22177

Expression Blend - 玩转示例数据 (WPF, Windows Phone)

数据是每个人生命中最重要的事情。无论你身在何处,你都在寻找某种数据。数据组织得越好,就会吸引越多的人。让我们将你的背景切换到开发领域,即 WPF、Windows 应用商店和 Windows Phone 应用程序。应用商店中最好的应用程序是那些数据组织得非常有效的应用程序。在设计和开发应用程序时,开发者会想到几个问题。

  • 我将如何找到数据?
  • 如果我没有真实数据怎么办?
  • 我应该等到找到真实数据吗?
  • 在真实数据到来之前,有没有办法对我的列表进行样式设置和组织?
  • 我的平台会让我生成一些数据吗?
  • 当数据到来时,它会被替换为真实的(实时)数据源吗?

好吧,如果你是一名 .NET 开发人员,正在为 Windows Phone、Windows 应用商店和 WPF 开发应用程序,我在这里回答你所有的问题。我想用一个词回答你所有上述问题:“是”

你脑海中可能出现的下一个问题是“如何”
Expression Blend  将帮助我们在短时间内轻松完成所有这些工作。让我们深入探讨如何

  • 生成示例数据(创建虚拟联系人数据)
  • 从类生成示例数据
  • 从 XML 文件导入示例数据(解析实时 RSS)
  • 修改示例数据(向示例数据引入图像)
  • 切换到实时数据 
  • 在其他项目中重用示例数据

本文将对以上所有内容进行很好的介绍。

Expression Blend 中的数据选项卡

Expression Blend 大部分时间在右侧有一个标记为“数据”的选项卡。这就是我们将用于完成所有工作的选项卡。如果你的 Expression Blend 版本中有它,那真是太棒了,但如果你不幸在你的 Expression Blend 版本中没有数据选项卡,你有两个选择,

  1. 在菜单中,转到“窗口”并勾选“数据”。
  2. 如果没有“数据”选项,你需要升级你的 Expression Blend 版本

生成示例数据

在 Expression Blend 中生成示例数据非常容易。你可能会想如何?好吧,有很多选项可以生成数据。只需转到“数据”选项卡并单击数据库按钮。你会在那里找到不同的选项。

你会在 Expression Blend 的数据库图标下找到不同的选项。你会在那里找到“创建示例数据”、“从 XML 创建示例数据”、“从类创建示例数据”。我们将详细讨论不同的选项。

注意:在这里,Expression Blend 会提示你设置示例数据的范围。将其设置为项目,以便你也可以在其他页面中调用创建的示例数据。如果你将范围设置为特定文档,则无法从其他页面访问它。

所以现在我们必须深入研究创建一些示例数据。

创建新的示例数据

我们现在在这里准备讨论如何创建示例数据。如果你跳到了博客的这一部分,如果你不熟悉 Expression Blend,我建议你返回并查看之前讨论的内容。在这里,我们将创建一些示例数据,我们将选择“创建新示例数据”的选项。

思考点:大多数情况下,设计人员没有获得真实的、他们将用来制作原型的数据,他们也不知道数据的真实方法。他们只知道数据的简单模式,或者你可以称之为元数据。通过创建新的示例数据,你将能够在该模式上生成一些示例数据,以便你可以像设计真实数据一样设计它。

所以首先你在项目中创建一个示例数据。在这里,你将拥有在“数据”选项卡中创建的示例数据的数据源。

在我们的案例中,它是电话簿示例数据。记住勾选“应用程序运行时启用示例数据”,否则应用程序运行时将不会显示数据。

当我单击“确定”时,数据源将出现在我的“数据”选项卡中。

所以我们的数据源在这里有两个属性,“Property1”和“Property2”。如果你想添加一些新属性,你可以在集合前面的“+”号添加一个。现在让它出现在你的应用程序页面上。你只需拖动集合并将其放到页面上。

所以一切正常,我们的示例数据出现在应用程序页面上。现在你看到布尔类型变成了复选框,而字符串类型的文本字段变成了文本块。

我们可以通过更改属性来设计我们自己选择的数据。

Blend 练习:  所以这里有一个我们可以做的练习,让我们尝试为联系人生成示例数据。它有姓名、电子邮件 ID、联系电话等。 

提示: 只需添加属性并更改其类型,一切都会正常工作。

在这里我们可以更改数据类型,我们有大量的示例数据选项,例如电话号码、地址、电子邮件 ID 等。可以使用预定义的选项生成所需类型的数据。

你只需单击格式的下拉菜单,你就会找到不同类型的数据选项。

 

这是为联系人列表创建的示例数据,只需简单地拖放,我们就会得到类似这样的东西,

这里生成的项目模板可以更改并使其更加有条理,以便这些项目提供联系人的外观。完成所有操作后,联系人将看起来像这样,

问题: 如果这里的数据需要更改怎么办?生成的电话号码与你的相关国家/地区不符。 

我们为你提供了一个解决方案,请看下面的图片。

此处黄色突出显示的选项用于更改生成的项目数据。如果你单击它,你会找到一个类似的面板,你可以在其中编辑生成的项目数据。

你甚至可以从左下角的选项增加或减少生成的记录数量。

提示:你还可以从选定的文件夹添加图像,或者你可以使用 Blend 生成的图片。你只需将集合的属性设置为“图像”。

从 XML / 实时 XML 源创建示例数据

哇!博客最有趣的部分来了,从 XML 文件或实时 XML 源生成数据。到目前为止,我们已经生成了示例数据。我们更改了该示例数据。我们引入了自定义数据模式。我们生成了包含联系人的示例电话簿。现在是时候做更有趣的事情了。我们大多数人在应用程序中有时会使用 XML 文件。解析 XML 文件需要很长的代码和时间。Expression Blend 允许你生成该 XML 文件或在线源中的数据。

为此,你再次需要创建示例数据。

但这次你需要从 XML 导入示例数据,为什么不在 Windows Phone 中执行此过程呢?

这不是一个坏主意,因为我们的主题涵盖了 Windows Phone 和 WPF,所以让我们在 Windows Phone 项目中解析 XML 数据源。(WPF 也适用相同的规则和步骤)

以下是你解析在线 RSS 源并生成其相应示例数据的步骤。

  • 打开 Blend 并创建一个新项目。
  • 转到右上角的“数据”选项卡。

  • 转到“数据”选项卡并单击“创建示例数据”选项卡
  • 单击“从 XML 创建示例数据”。
  • 你将看到一个类似的对话框,

  • 浏览你要解析的 XML 文件并单击“确定”。
  • 现在在右侧的数据选项卡中,你将看到数据和集合。

  • 拖动集合并将其放到 Windows Phone 界面上。

  • 根据你的需要更改项目模板。
  • 你的 XML 文件已解析。
  • 通过遵循这些步骤,你可以解析任何类型的 XML 文件。
  • 节省时间并提供快速结果。 

注意:  你可以通过简单的步骤将新数据重新导入到你的数据源中,转到最右侧的数据源,你会找到一个下拉菜单。单击后,你可以单击“从数据源重新导入 XML 数据”,一切都会为你工作。

原始/实时数据到达

开发者心中总有一个大问题,那就是当我测试真实数据而不是示例数据时会发生什么,Expression Blend 是否提供选项来测试真实数据,并且在运行时示例数据会消失吗?

答案是“是”,你可以勾选或取消勾选“应用程序运行时启用示例数据”的属性,将其设置为 false,正如我们上面讨论的那样。当你取消勾选它时,真实或实时数据将在应用程序运行时以与生成示例数据时完全相同的格式呈现在你面前。

生成示例数据的可重用性

你无需一遍又一遍地生成示例数据,一旦你出于某种目的生成了示例数据,就无需在另一个项目中创建相同的示例数据。你可以简单地导入生成的示例数据并节省时间,你将如何做到这一点?

你只需遵循以下步骤,

  1. 在你要复制示例数据的项目中,创建一个新的示例数据源,并赋予它与要复制的数据源相同的名称。
  2. 在“项目”面板中,展开“SampleData”文件夹,右键单击包含 XAML 和 XSD 文件的文件夹,然后单击“添加现有项”。
  3. 在“添加现有项”对话框中,浏览到你要从中复制数据的项目文件夹,展开“SampleData”文件夹,浏览到包含你想要的 XAML 和 XSD 文件的S数据源文件夹,选择所有项(除了 XAML 和 XSD 文件,可能还有一个图像文件夹,所以也要选择它),然后单击“打开”。
  4. 在“覆盖文件”对话框中,单击“是”。
  5. 当看到关于文件在 Expression Blend 外部被修改的消息时,单击“是”。
  6. 保存项目并关闭它。
  7. 再次打开项目。你将在“数据”面板中看到新的模式。

摘要

在本文中,我们从头开始学习了 Expression Blend 中的示例数据是什么,开发人员如何使用该示例数据在短时间内开发实时应用程序。如何快速解析 XML 文件或在线数据源。如何生成你需要的示例数据并在不同项目中重用它。希望你觉得这篇文章很有趣。

下次见,编码愉快!

个人博客

© . All rights reserved.