Creating Sample Data from a Class - Page 1

One of the cool features in Expression Blend for
making it easy to design your Windows Phone,
Silverlight, and WPF applications is
Sample Data. The way it works is very simple.
You tell Blend to generate a schema for your sample
data and, after a few mouse clicks, sample
values are generated for you:

[ look ma, sample data! ]

While this is great if you just want to visualize
some data for design purposes, it is not so great if you
need to eventually tie it up with real data. The
reason it isn't ideal is that your sample data is probably
in a form that your live data may not be in, and trying to
reconcile the automatically generated sample data with its
own schema with your own datasource isn't fun.

To help avoid having you reconcile the sample data schema
with your own data, Blend provides you with another way of
generating the sample data. Instead of having Blend create
both the sample data schema and generate the values for you,
you specify the sample data schema yourself. By doing this,
you control what your sample data looks like - more than
likely modeling it after real data, but you let
Blend continue to generate the sample values just as you had
before.

This mystical feature that allows you to do this is
called Create Sample Data from Class.
In this article, you will learn how to use Expression
Blend and Visual Studio to generate sample data based on a
schema/model that you create yourself.

Creating the Class
The model for your sample data will just be a class
that contains some public properties. It is these
properties that will be used to generate your sample
data.

As you can guess, you'll need to create a class first. To
get started, create a new Windows Phone, WPF, or
Silverlight project using Expression Blend. Once you have
created your project, open this exact same solution in
Visual Studio. You can do that easily by just right clicking
on your solution via the Projects Panel and selecting Edit
in Visual Studio:

[ easily edit your solution in Visual Studio ]

A few moments later, Visual Studio will launch with the
exact same Solution opened and proudly displayed:

[ the same solution is now visible in Visual Studio ]

For things that involve code, such as adding and
modifying a Class, I tend to rely on Visual Studio far more
than Blend. To add a new Class
file to our project, right click on your project
(SampleDataFromClass in my screenshot) and go to Add | New
Item.

The Add New Item dialog will appear. In this dialog,
first select the Class item type:

[ you want to create a new item of type Class ]

Before you dismiss this dialog, give your Class a name as
well. Find the Name field towards the bottom of this dialog
and enter the name Address:

[ give your Class the name Address ]

After you have entered Address for your soon to be
created Class, hit the Add button to dismiss this dialog and
to create your Address.cs Class file. This will have
automatically been opened for you:

usingSystem;

usingSystem.Net;

usingSystem.Windows;

usingSystem.Windows.Controls;

usingSystem.Windows.Documents;

usingSystem.Windows.Ink;

usingSystem.Windows.Input;

usingSystem.Windows.Media;

usingSystem.Windows.Media.Animation;

usingSystem.Windows.Shapes;

namespaceSampleDataFromClass

{

publicclassAddress

{

}

}

Let's add some properties! Inside your constructor, add
the following lines of code:

publicclassAddress

{

publicstringName

{

get;

set;

}

publicstringStreet

{

get;

set;

}

publicintZipCode

{

get;

set;

}

}

You added three properties called Name, Street,
and ZipCode. Notice the type of these three
properties. The Name and Street properties are
strings, and the ZipCode property is an int.

Generating the Sample Data
At this point, you have added a new class file and filled it
in with three properties! That's good for now. Jump back
into Expression Blend. You will probably see a dialog
letting you know that your current project has been updated
and changed. Click Yes to Reload the project, for the change
it is notifying you about is from you having added
Address.cs in Visual Studio a few seconds earlier.

If you look in your Projects Panel inside Expression
Blend, you'll see Address.cs appear as well:

Click on the Create Sample Data button and, from the menu
that appears, select Create Sample Data from Class:

[ it's time
to create some Sample Data! ]

The Create Sample Data from Class dialog will appear.
From this dialog, you will get to name your data source as
well as select which class you want to base your sample data
on:

[ just a
dialog - the most important one for now! ]

Leave the data source name as is (unless you really want
to rename it), but most importantly, select the Address
class and press OK. When you press OK, this dialog will
disappear and you will see your newly created data source
appear in the Data panel. If you expand it, you will see
your Address class and the Name, Street,and ZipCode
properties:

Something may look odd to you though. If you are a
typical sample data user, you are probably familiar with
using a collection of them as opposed to using just one like
you are right now. That is because our data source is
currently just a single class instance. To create a
collection, we will have to modify our data source to point
to a collection of Address objects instead. Let's do that...on
the
next page!