In-Memory Data
The purpose of this tutorial is to show you how to create in-memory data and use it in the context of your WPF application. The following common tasks will be examined:
Creating in-memory data.
Setting it as a data source/data context in WPF application.
Creating In-Memory Data
The following example shows how to setup a basic data model along with a view model.
Creating in-memory data
public class Category
{
public string CategoryName { get; internal set; }
public int CategoryID { get; internal set; }
public string Description { get; internal set; }
}
public class ViewModel
{
private ObservableCollection<Category> categories;
public ObservableCollection<Category> Categories
{
get
{
if(this.categories == null)
{
this.categories = this.CreateCategories();
}
return this.categories;
}
}
private ObservableCollection<Category> CreateCategories()
{
var categories = new ObservableCollection<Category>();
var c = new Category();
c.CategoryID = 1;
c.CategoryName = "Beverages";
c.Description = "Soft drinks, coffees, teas, beers, and ales";
categories.Add(c);
c = new Category();
c.CategoryID = 2;
c.CategoryName = "Condiments";
c.Description = "Sweet and savory sauces, relishes, spreads, and seasonings";
categories.Add(c);
c = new Category();
c.CategoryID = 3;
c.CategoryName = "Confections";
c.Description = "Desserts, candies, and sweet breads";
categories.Add(c);
return categories;
}
}
Public Class Category
Private privateCategoryName As String
Public Property CategoryName() As String
Get
Return privateCategoryName
End Get
Friend Set(ByVal value As String)
privateCategoryName = value
End Set
End Property
Private privateCategoryID As Integer
Public Property CategoryID() As Integer
Get
Return privateCategoryID
End Get
Friend Set(ByVal value As Integer)
privateCategoryID = value
End Set
End Property
Private privateDescription As String
Public Property Description() As String
Get
Return privateDescription
End Get
Friend Set(ByVal value As String)
privateDescription = value
End Set
End Property
End Class
Public Class ViewModel
Private _categories As ObservableCollection(Of Category)
Public ReadOnly Property Categories() As ObservableCollection(Of Category)
Get
If Me._categories Is Nothing Then
Me._categories = Me.CreateCategories()
End If
Return Me._categories
End Get
End Property
Private Function CreateCategories() As ObservableCollection(Of Category)
Dim _categories = New ObservableCollection(Of Category)()
Dim c = New Category()
c.CategoryID = 1
c.CategoryName = "Beverages"
c.Description = "Soft drinks, coffees, teas, beers, and ales"
_categories.Add(c)
c = New Category()
c.CategoryID = 2
c.CategoryName = "Condiments"
c.Description = "Sweet and savory sauces, relishes, spreads, and seasonings"
_categories.Add(c)
c = New Category()
c.CategoryID = 3
c.CategoryName = "Confections"
c.Description = "Desserts, candies, and sweet breads"
_categories.Add(c)
Return _categories
End Function
End Class
Setting In-Memory Data as DataSource In WPF Application
You can set the in-memory data as a data source in xaml or in code.
Setting the data source in xaml
<Grid>
<Grid.DataContext>
<local:ViewModel />
</Grid.DataContext>
<telerik:RadTreeView x:Name="radTreeView"
ItemsSource="{Binding Categories}"
DisplayMemberPath="CategoryName"/>
</Grid>
Setting the data source in code
public MainWindow()
{
InitializeComponent();
this.radTreeView.ItemsSource = new ViewModel().Categories;
}
Public Sub New()
InitializeComponent()
Me.radTreeView.ItemsSource = (New ViewModel()).Categories
End Sub