[英]Sorting a databound Silverlight DataGrid
我有一個要嘗試排序的數據綁定Silverlight DataGrid控件。 我正在為數據源使用RIA服務(測試版),如果有什么不同的話。
我對Silverlight中的數據綁定非常陌生,因此我可能確實很想念它,但是我似乎找不到任何信息。 我希望能夠使用綁定語法將ItemSource的綁定設置為xaml中的集合,並將其排序在一個列上。
我意識到我可以在代碼中設置ItemsSource並使用LINQ到.OrderBy()。 但是我沒有那種約束力。 似乎應該有一種簡單的方法來執行此操作,但我找不到。 我如何保持綁定但仍訂購我的收藏集?
使用RIA Services時,可以在XAML中使用DomainDataSource。 這將允許您添加SortDescriptors來進行排序。 請參閱下面的示例:
<riaControls:DomainDataSource.SortDescriptors>
<riaData:SortDescriptor Direction="Ascending"
PropertyPath="Name" />
</riaControls:DomainDataSource.SortDescriptors>
看看如何使用CollectionViewSource。 基本上,您可以在實際數據收集和數據綁定控件之間使用“中間人”。
粗略的例子:
<Window.Resources>
<CollectionViewSource
Source="{Binding <<<bind to your collection here >>> }"
x:Key="myDataView" />
</Window.Resources>
...
<ListBox Name="lsyFoo"
ItemsSource="{Binding Source={StaticResource myDataView}}">
...
然后在您的代碼后面:
myDataView.SortDescriptions.Add(
new SortDescription("<<<insert property to sort by>>>", ListSortDirection.Ascending));
(ps。您還可以使用PropertyGroupDescription添加分組)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.