C1TreeView Template
---------------------------
Shows how to populate of a C1TreeView using template and style selectors to customize each item.

You can use the C1HierarchicalDataTemplate to control the appearance of hierarchical items.

The C1HierarchicalDataTemplate is similar to the one in WPF. It allows you to specify the 
template to apply to each element in our data source, and a property indicating where to 
find the elements for the next level on the hierarchy.

In this sample we use two C1HierarchicalDataTemplates. You can use these templates in
combination with a DataTemplateSelector, which allows you to determine when to use one type
of template or the other based on custom logic (generally depending on some property of the
data objects).

With the data templates, you can customize the visualization of your data, but what if you 
want to customize some property of the container used to show each element (we are using a 
C1TreeView so the container for our data will always be a C1TreeViewItem)?
To achieve this, you can use a StyleSelector to apply some style to the C1TreeViewItems.

The data used for this sample is obtained from the MS Silverlight System.Windows assembly
and the ComponentOne C1.Silverlight assembly. We obtain the types contained in both assemblies
and populate a C1TreeView representing the type hierarchy.

In this sample, we have decided that all the C1TreeViewItems representing a base class of 
some of the controls developed by ComponentOne will be expanded, so in the StyleSelector we
apply the style only if the DataObject satisfies that rule.
