In this article we will be seeing how to use Silverlight tree view control in
SharePoint 2010.
I have created a Silverlight tree view which is used to display all the lists
available in the site as shown in the following.
![TreeView1.gif]()
"Sample" is the name of the site. When you expand the site you could see all the
lists available for the list.
Xaml:
<sdk: TreeView/>
Steps Involved:
Creating a Silverlight Application:
- Open Visual Studio 2010.
- Go to File => New => Project.
- Select Silverlight from the Installed
templates and choose the Silverlight Application template.
- Enter the Name and choose the location.
- Click OK.
- In the New Silverlight Application wizard
uncheck the "Host the Silverlight Application in a new Web site".
- Click OK.
Creating the UI :
Open MainPage.xaml file and replace the code with the following one.
<UserControl
x:Class="TreeviewControl.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300"
d:DesignWidth="400"
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk">
<Grid
x:Name="LayoutRoot"
Background="Gray">
<sdk:TreeView
Height="200"
HorizontalAlignment="Left"
Margin="0,47,0,0"
Name="treeView"
VerticalAlignment="Top"
Width="400"
>
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate
ItemsSource="{Binding
Children}"
>
<StackPanel>
<TextBlock
Text="{Binding
Title}"
Foreground="Green"
/>
</StackPanel>
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.ItemTemplate>
</sdk:TreeView>
</Grid>
</UserControl>
Open MainPage.xaml.cs file and replace the code with the following one.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
Microsoft.SharePoint.Client;
namespace
TreeviewControl
{
public partial
class MainPage
: UserControl
{
private
ClientContext context;
private
ListCollection listColl;
public class
Site
{
public
string Title { get;
set; }
public
List<SiteLists> Children {
get; set; }
}
public class
SiteLists
{
public
string Title { get;
set; }
}
public MainPage()
{
InitializeComponent();
context = new
ClientContext(ApplicationContext.Current.Url);
context.Load(context.Web);
listColl = context.Web.Lists;
context.Load(listColl);
context.ExecuteQueryAsync(new
ClientRequestSucceededEventHandler(OnRequestSucceeded),
null);
}
private void
OnRequestSucceeded(Object sender,
ClientRequestSucceededEventArgs args)
{
// This is not called on the UI thread.
Dispatcher.BeginInvoke(BindData);
}
private void
BindData()
{
List<Site>
siteColl = new List<Site>();
Site site=
new Site {
Title = context.Web.Title };
siteColl.Add(site);
site.Children = new
List<SiteLists>();
foreach (List
list in listColl)
{
SiteLists siteLists =
new SiteLists
{ Title = list.Title };
site.Children.Add(siteLists);
}
this.treeView.ItemsSource = siteColl;
}
}
}
Build the solution.
Deploying in SharePoint site:
-
Upload the xap file in the SharePoint Site =>
Shared Documents.
-
Go to Site Actions => Edit Page => Editing
Tools => Insert => Web Part.
![TreeView2.gif]()
-
Go to Categories => Media and Content =>
Silverlight Web Part => Click on Add.
-
In the URL give the path of the xap file
~site/Sample/Shared%20Documents/TreeviewControl.xap
![TreeView4.gif]()
-
Click on Ok.