【前言】

Blend自诞生那一天起就伴随这开发者如此的评价:

有VS还用Blend干啥,直接码代码就好了。

Blend会生成一堆垃圾无用代码,很不爽。

对于这类我只会在心里评价,当你并不真正了解一样事物的情况下,就给这个东西扣帽子,实在很不公平。

作为程序员首先要明白时间的宝贵和效率的重要性,更应了解各种效能工具,Blend便是其中一个,如果你仍然觉得学怎么用Blend纯粹是浪费时间,

那么恭喜你,后面的文章可以忽略了:-)

【本文讲述的内容】

使用blend为程序添加设计时的数据。

【本文适用的场景】

很多应用由于本身的性质决定了,其数据来源是远端网络,因此调整UI时非常不方便,多数情况调UI的过程是:

1、调整UI布局

2、运行程序

3、等待数据加载

4、数据加载完毕后看是否还有UI问题,如果有则goto 1

如此效率非常的低,本文介绍的方法可以将流程调整为:

1、添加设计时数据源

2、调整UI布局

3、调整UI布局

4、调整UI布局

省去联机调试,提高效率。

【正文】

一、实现思路

Blend本身提供了SampleData功能,此功能可以根据Model的定义自动生成一个SampleData文件,又提供了d:DataContext 和d:DesignData来指定设计时的DataContext。二者结合便可以实现前面说到的效果。

二、具体步骤

1、我们首先创建程序的Model和主页面的MainpageViewModel

Model:

ViewModel:

接下来打开blend找到Data选项卡,点击右方第一个按钮

这里看到三个选项,我们选择第三个,根据类来创建Sample Data:

接下来选择MainpageViewModel:

之后我们观察工程目录,会看到如下新添加的信息:多出了一个Xaml文件。

打开看一看,可以看到自动生成了如下数据,包括VM中定义的Title以及ModelList列表,并且自动为列表加入了随机的数据

看到这里可能读者会有一个疑问,SampleData会不会增大程序的包呢?

如果存在这个疑问说明你是个细心的读者,考虑很周全,那么我们看下这个SampleData文件的属性:

可以清楚的看到Build Action是DesignData Do not copy。也就是锁这个文件不会被打包的程序的安装包中。

最后一步:

在page中指定d:DataContext按下面的格式写:

在页面内容中加个简单的列表,定义简单的模版:

最后我们Build一下。再看VS的编辑器里面Sample数据就显示出来了

【更多功能】

我们甚至可以在Blend的Data选项卡下,每个属性最右面的按钮中选择数据的格式,如下图:

SampleData文件中的数据便会根据选择的格式重新生成对应的数据了。:-)

【总结】

以上办法非常简单,并且十分遍历,极大的提高了开发效率,因此推荐给大家,如有任何疑问欢迎加入

WP交流群:182659848

Windows Phone实用教程:利用Blend为程序添加设计时数据的更多相关文章

  1. 在Windows系统下用命令把应用程序添加到系统服务

    在Windows系统下用命令把应用程序添加到系统服务,使用SC命令. 加入服务格式如下:sc create ServiceName binPath= 程序路径 start= auto(等号后面的空格是 ...

  2. 图像处理控件ImageGear for .NET教程如何为应用程序 添加DICOM功能(2)

    在前面的一些关于图像处理控件ImageGear for .NET文章<图像处理控件ImageGear for .NET教程: 添加DICOM功能(1)>中讲解了如何对应用程序添加DICOM ...

  3. 编写适合windows 7 平台的软件,给程序添加UAC认证

    Delphi程序必须在资源里面嵌入MANIFEST信息 一. 首先编辑一个文件,内容如下: <?xml version="1.0" encoding="UTF-8& ...

  4. 利用JDBC工具类添加和查询数据-Java(新手)

    JDBC工具类: 1 package cn.lxr.jdbclx; 2 3 import java.sql.*; 4 5 public class JDBCUtils { 6 private stat ...

  5. 微信小程序添加外部地图服务数据

    先上效果: 缘起 使用微信小程序做地图相关功能的时候,有个需求是需要接入自己发布的地图服务.查看微信小程序地图组件文档,发现它对地图相关的支持很少,只有一些基础功能,比如添加点.线.面.气泡和一些常规 ...

  6. 缓冲区溢出实战教程系列(三):利用OllyDbg了解程序运行机制

    想要进行缓冲区溢出的分析与利用,当然就要懂得程序运行的机制.今天我们就用动态分析神器ollydbg来了解一下在windows下程序是如何运行的. 戳这里看之前发布的文章: 缓冲区溢出实战教程系列(一) ...

  7. 学习笔记之Java程序设计实用教程

    Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...

  8. 蓝牙BLE实用教程

    蓝牙BLE实用教程 Bluetooth BLE 欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过 设置 里的修改模板来改变新建文章的内容. 1.蓝牙BLE常见问答 Q: Smart Re ...

  9. Windows 7安装教程(详细图解)

    早前向大家介绍了Windows XP的安装教程,今天思齐再来介绍一下Windows 7的安装教程,Windows 7在安装上相对以前的Windows操作系统都要简单一些,这一点对于尤其是非专业用户来说 ...

随机推荐

  1. IOS 预处理语句

    程序中的源代码计算机是无法识别的,需要将写好的代码转成0.1二进制代码,计算机才能识别.将源代码转成二进制代码的需要经过两步,编译和链接.编译是通过编译器将每个文件的代码都转为二进制代码,在这个过程中 ...

  2. C#控件一览表

    C#控件一览表 .窗体 .常用属性 ()Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体. () WindowState属性: 用来获取或设置窗体的窗口状态. 取值有三 ...

  3. [React] Refactor a Class Component with React hooks to a Function

    We have a render prop based class component that allows us to make a GraphQL request with a given qu ...

  4. linux CentOS6.5 yum安装mysql 5.6(转载&删改)

    按:下面文章经过我一路测试没有问题,是篇好文,在此感谢作者 别踩我袈裟  .另因原文有些啰嗦,我自己有所删改,并尾后增加了一大段. 出处:https://www.cnblogs.com/renjido ...

  5. Win8多平台引用配置

    之前移植过DLNA的库,这个库是C++写的,然后我们的项目是C#的.接着很郁闷的事情发生了,主项目引用一个C#的DLL,然后这个DLL引用这个C++/CX封装的库.如果有C++的源代码的话,做项目依赖 ...

  6. [MSP430]入门之中的一个 总体认识

    这是由TI公司推出的一款比較单片机, 相对stm32来说简单些, 由于它是16位的,  所以我们在学习中可能也会像51一样,  直接操纵寄存器. TI设计这款单片机的初衷是, 让它用于低功耗的嵌入式设 ...

  7. CentOS 6上的redis搭建实战记录(转)

    redis 是一个基于内存的高性能key-value数据库,数据都保存在内存中定期刷新到磁盘,以极高的读写效率而备受关注.他的特点是支持各种数据结构,stirng,hashes, list,set,和 ...

  8. 如何判断自己家的宽带是否有公网IP

    1)点击链接 http://www.net.cn/static/customercare/yourIP.asp 抓取自己的IP地址 2)打开一个命令提示符窗口 tracert <刚才获取的IP& ...

  9. iOS开发-应用之间的跳转及通信

    Update 2016-08-12: 在Github的Demo上增加Mac自定义Url Scheme,可以在Safari上输入特定协议头打开应用,并传递参数) 简介 我们接下来将要实现应用程序之间的跳 ...

  10. cygwin下安装scws

    安装gcc和make命令 1.找到cygwin的etc目录中有一个名为passwd的文件.   2.用UE或记事本打开passwd这个文件,找到以下部分,把其中的windows用户名admin换成ro ...