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