Proprietà SortDescriptor.PropertyPath
Ottiene o imposta la proprietà pubblica utilizzata per eseguire l'ordinamento.
Spazio dei nomi: System.Windows.Controls
Assembly: System.Windows.Controls.DomainServices (in system.windows.controls.domainservices.dll)
Utilizzo
'Utilizzo
Dim instance As SortDescriptor
Dim value As String
value = instance.PropertyPath
instance.PropertyPath = value
Sintassi
'Dichiarazione
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)
Valore proprietà
Proprietà pubblica utilizzata per eseguire l'ordinamento.
Esempio
Nell'esempio seguente viene illustrato come aggiungere un descrittore di ordinamento all'oggetto DomainDataSource. I dati recuperati dalla query vengono ordinati in base ai valori nella proprietà 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>
Osservazioni
Quando si implementano operazioni di paging e ordinamento contemporaneamente, includere almeno un oggetto SortDescriptor con il relativo attributo PropertyPath assegnato a una proprietà che contenga valori univoci, ad esempio una chiave primaria, oppure aggiungere una clausola OrderBy basata su una proprietà che contenga valori univoci alla query in DomainDataSource. Se si ordinano i dati solo in base a una proprietà che non contiene valori univoci, i valori restituiti potrebbero contenere dati incoerenti o mancanti tra le pagine.
Si considerino ad esempio i valori presenti nella tabella. I valori ID sono univoci, ma i valori Paese non lo sono.
ID | Paese |
---|---|
1 |
UK |
2 |
UK |
3 |
US |
4 |
UK |
5 |
US |
6 |
IT |
7 |
UK |
8 |
UK |
9 |
US |
10 |
SP |
Se si desidera implementare il paging per questi valori ordinati in base al paese, è possibile utilizzare il markup seguente:
<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>
Sicurezza dei thread
Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.
Piattaforme
Piattaforme di sviluppo
Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 e Windows 2000
Piattaforme di destinazione
Change History
Vedere anche
Riferimento
Classe SortDescriptor
Membri SortDescriptor
Spazio dei nomi System.Windows.Controls