Compartir a través de


Clase SortDescriptor

Describe un criterio de ordenación.

Espacio de nombres: System.Windows.Controls
Ensamblado: System.Windows.Controls.DomainServices (en system.windows.controls.domainservices.dll)

Uso

'Uso
Dim instance As SortDescriptor

Sintaxis

'Declaración
Public Class SortDescriptor
    Inherits DependencyObject
public class SortDescriptor : DependencyObject
public ref class SortDescriptor : public DependencyObject
public class SortDescriptor extends DependencyObject
public class SortDescriptor extends DependencyObject

Ejemplo

En el ejemplo siguiente se muestra cómo agregar un descriptor de ordenación a DomainDataSource. Los datos recuperados de la consulta están ordenados por los valores de la propiedad StandardCost.

<Grid x:Name="LayoutRoot" Background="White">
    <riaControls:DomainDataSource Name="source" QueryName="GetProducts" AutoLoad="true">
        <riaControls:DomainDataSource.DomainContext>
            <domain:ProductDomainContext />
        </riaControls:DomainDataSource.DomainContext>
        <riaControls:DomainDataSource.SortDescriptors>
            <riaControls:SortDescriptor PropertyPath="StandardCost" Direction="Ascending" />
            <riaControls:SortDescriptor PropertyPath="ProductID" Direction="Ascending" />
        </riaControls:DomainDataSource.SortDescriptors>
    </riaControls:DomainDataSource>
    <data:DataGrid ItemsSource="{Binding Data, ElementName=source}" />
</Grid>

Cuando implemente la paginación y ordenación conjuntamente, incluya al menos un SortDescriptor con su atributo PropertyPath asignado a una propiedad que contiene valores únicos, como una clave principal. O bien, agregue una cláusula OrderBy basada en una propiedad que contiene valores únicos para la consulta en DomainDataSource. Si ordena solo los datos en una propiedad que no contiene valores únicos, los valores devueltos podrían contener datos incoherentes o podrían faltar datos en todas las páginas.

Por ejemplo, considere los valores de la tabla siguiente. Tenga en cuenta que los valores de Id. son únicos, pero no son únicos los valores de País.

Id. País

1

Reino Unido

2

Reino Unido

3

US

4

Reino Unido

5

US

6

IT

7

Reino Unido

8

Reino Unido

9

US

10

SP

Si desea implementar la paginación para estos valores, ordenados por País, puede usar el marcado siguiente:

<Grid x:Name="LayoutRoot">
    <ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}">
        <StackPanel x:Name="ContentStackPanel">
            <TextBlock x:Name="HeaderText" Style="{StaticResource HeaderTextStyle}" 
                               Text="Home"/>
            <TextBlock x:Name="ContentText" Style="{StaticResource ContentTextStyle}" 
                               Text="Home page content"/>
            <riaControls:DomainDataSource Name="domainDataSource1" QueryName="GetCountriesQuery" PageSize="4">
                <riaControls:DomainDataSource.DomainContext>
                    <ds:TestDomainContext></ds:TestDomainContext>
                </riaControls:DomainDataSource.DomainContext>
                <riaControls:DomainDataSource.SortDescriptors>
                    <riaControls:SortDescriptor PropertyPath="Country" Direction="Ascending"></riaControls:SortDescriptor>
                    <riaControls:SortDescriptor PropertyPath="ID"></riaControls:SortDescriptor>
                </riaControls:DomainDataSource.SortDescriptors>
            </riaControls:DomainDataSource>
            <my:DataGrid ItemsSource="{Binding Data, ElementName=domainDataSource1}" />
            <my:DataPager PageSize="4" Source="{Binding Data, ElementName=domainDataSource1}" />
        </StackPanel>
    </ScrollViewer>
</Grid>

Notas

La clase DomainDataSource proporciona la colección SortDescriptors para facilitar la ordenación de datos. En la colección SortDescriptors, agregue las instancias SortDescriptor que describen los valores que se utilizarán para ordenar la colección. Puede agregar tantas instancias SortDescriptor como desee para proporcionar capas de ordenación. Puede especificar si los datos se ordenan en orden ascendente o descendente.

Si utiliza SortDescriptor mediante programación, compruebe que la propiedad CanLoad devuelve true. Cualquier intento de ordenación cuando CanLoad devuelve false, provoca que DomainDataSource produzca una excepción de operación no válida. La ordenación inicia una operación de carga y las operaciones de carga no se permiten cuando CanLoad es false.

Jerarquía de herencia

System.Object
   System.Windows.DependencyObject
    System.Windows.Controls.SortDescriptor

Seguridad para subprocesos

Cualquier miembro estático público (Compartidos en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Plataformas

Plataformas de desarrollo

Microsoft Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 y Windows 2000

Plataformas de destino

Change History

Vea también

Referencia

Miembros SortDescriptor
Espacio de nombres System.Windows.Controls