CollectionViewSource.Source Property

Gets or sets the collection object from which to create this view.

Namespace:  System.Windows.Data
Assembly:  System.Windows (in System.Windows.dll)

Syntax

'Declaration
Public Property Source As Object
public Object Source { get; set; }
<collectionViewSource>
  <collectionViewSource.Source>
    <Object .../>
  </collectionViewSource.Source>
</collectionViewSource>
<collectionViewSource Source="myCollection"/>

XAML Values

Term

Definition

myCollection

An existing collection. To refer to an existing collection, use the StaticResource Markup Extension.

Property Value

Type: System.Object
The collection object from which to create this view. The default is nulla null reference (Nothing in Visual Basic).

Exceptions

Exception Condition
ArgumentException

The specified value when setting this property is not nulla null reference (Nothing in Visual Basic) or an IEnumerable implementation.

-or-

The specified value when setting this property is an ICollectionView implementation.

InvalidOperationException

The specified value implements ICollectionViewFactory but its CreateView method returns an ICollectionView with one or more of the following inconsistencies:

Remarks

When you set this property, a view is generated automatically unless the source collection implements ICollectionViewFactory. Otherwise, the view is retrieved through the CreateView method.

You can retrieve the view through the View property.

Version Notes

Silverlight 3 does not support the ICollectionViewFactory interface.

Examples

The following code example demonstrates the use of this property in XAML to apply sorting to a data source. The data is also defined in XAML to enable you to see the effects of the CollectionViewSource in the Silverlight Designer in Visual Studio 2010.

This example uses the Customer and CustomerCollection classes defined in Walkthrough: Using Sample Data in the Silverlight Designer. The walkthrough also describes how to use design-time attributes to display sample data in the Silverlight Designer.

<UserControl x:Class="CollectionViewSourceExample.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"
  xmlns:local="clr-namespace:DesignDataDemo"
  xmlns:compMod="clr-namespace:System.ComponentModel;assembly=System.Windows"
  xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
  mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" >

  <UserControl.Resources>

    <local:CustomerCollection x:Key="customerSampleData" >
      <local:Customer FirstName="Syed" LastName="Abbas" Age="23" 
        CustomerID="E7181DC6-3F9E-45A4-A5F7-AC0B119D1FD8" />
      <local:Customer FirstName="Brenda" LastName="Diaz" Age="55" 
        CustomerID="BB638D72-8B72-495A-B0F9-79F37964BBAE" />
      <local:Customer FirstName="Lori" LastName="Kane" Age="17" 
        CustomerID="B168D811-5548-4D28-8171-318F9A4D7219" />
    </local:CustomerCollection>

    <CollectionViewSource x:Name="dataSource" 
      Source="{StaticResource customerSampleData}">
      <CollectionViewSource.SortDescriptions>
        <compMod:SortDescription PropertyName="Age" Direction="Ascending"/>
      </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
  </UserControl.Resources>

  <Grid x:Name="LayoutRoot" Background="White">
    <sdk:DataGrid ItemsSource="{Binding Source={StaticResource dataSource}}" />
  </Grid>

</UserControl>

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

See Also

Reference

CollectionViewSource Class

System.Windows.Data Namespace

Other Resources

How to: Bind to Hierarchical Data and Create a Master/Details View