【问题标题】:Sorting a databound Silverlight DataGrid对数据绑定 Silverlight DataGrid 进行排序
【发布时间】:2010-02-22 04:38:21
【问题描述】:

我有一个要排序的数据绑定 Silverlight DataGrid 控件。我正在为我的数据源使用 RIA 服务(测试版),如果这有什么不同的话。

我对 Silverlight 中的数据绑定非常陌生,所以这可能是我错过的非常明显的事情,但我似乎找不到任何关于它的信息。我希望能够使用绑定语法将 ItemSource 绑定到 xaml 中的集合,并将其排序在一列上。

我意识到我可以在代码中设置 ItemsSource 并使用 LINQ to .OrderBy()。但我没有那样绑定。似乎应该有一种简单的方法来做到这一点,但我找不到。 我怎样才能保持绑定并订购我的收藏?

【问题讨论】:

    标签: c# wpf silverlight data-binding


    【解决方案1】:

    看看使用 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添加分组)

    【讨论】:

    • 是的,这正是我必须做的。谢谢。
    【解决方案2】:

    当您使用 RIA 服务时,您可以在 XAML 中使用 DomainDataSource。这将允许您添加将执行您的排序的 SortDescriptors。请参阅下面的示例:

    <riaControls:DomainDataSource.SortDescriptors>
        <riaData:SortDescriptor Direction="Ascending" 
                                PropertyPath="Name" />
    </riaControls:DomainDataSource.SortDescriptors>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-22
      • 1970-01-01
      • 2011-04-14
      • 2013-08-30
      相关资源
      最近更新 更多