簡體   English   中英

對數據綁定的Silverlight DataGrid進行排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM