Поделиться через


Свойство SortDescriptor.PropertyPath

Возвращает или задает открытое свойство, используемое для сортировки.

Пространство имен: System.Windows.Controls
Сборка: System.Windows.Controls.DomainServices (в system.windows.controls.domainservices.dll)

Использование

'Применение
Dim instance As SortDescriptor
Dim value As String

value = instance.PropertyPath

instance.PropertyPath = value

Синтаксис

'Декларация
Public Property PropertyPath As String
public string PropertyPath { get; set; }
public:
property String^ PropertyPath {
    String^ get ();
    void set (String^ value);
}
/** @property */
public String get_PropertyPath ()

/** @property */
public void set_PropertyPath (String value)
public function get PropertyPath () : String

public function set PropertyPath (value : String)

Значение свойства

Открытое свойство, используемое для сортировки.

Пример

В следующем примере показано добавление дескриптора сортировки к объекту DomainDataSource. Данные, получаемые из запроса, сортируются по значениям в свойстве 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>

Замечания

Если разбиение на страницы реализуется одновременно с сортировкой, включите ходя бы один объект SortDescriptor, атрибут PropertyPath которого будет назначен свойству, содержащему уникальные значения, например первичному ключу. Также можно добавить предложение OrderBy, основанное на свойстве, которое содержит уникальные значения для запроса в DomainDataSource. Если выполняется только сортировка данных по свойству, не содержащему уникальных значений, то в возвращаемых значениях на разных страницах возможно рассогласование или потеря данных.

Например, рассмотрим значения из следующей таблицы. Заметьте, что значения в столбце ID уникальны, но значения в столбце Country не уникальны.

ID Country

1

UK

2

UK

3

US

4

UK

5

US

6

IT

7

UK

8

UK

9

US

10

SP

Чтобы реализовать для таких значений, отсортированных по столбцу Country, разбиение на страницы, можно использовать следующую разметку:

<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>

Многопоточное использование

Все общие статические члены (Shared в Visual Basic) можно использовать в потокобезопасных операциях. Безопасная многопоточная работа с членами экземпляров типа не гарантируется.

Платформы

Платформы разработки

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 и Windows 2000

Целевые платформы

Change History

См. также

Справочник

SortDescriptor - класс
Члены SortDescriptor
System.Windows.Controls - пространство имен