列表框反向(模板)

时间:2010-09-05 21:47:25

标签: c# windows-phone-7

Listbox中是否存在模板逆序?我正在使用ObservableCollection,我想避免任何额外的排序,插入等。

2 个答案:

答案 0 :(得分:4)

如果您已经有一个不想更改的ObservableCollection,我可能会使用CollectionViewSource类。您可以直接在XAML中执行此操作:

...
xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
...

<UserControl.Resources>
    <CollectionViewSource x:Key="cvs" Source="{Binding}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="TheProperty" Direction="Descending" />
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</UserControl.Resources>

<ListBox ItemsSource={Binding Source={StaticResource cvs}}" />

答案 1 :(得分:2)

如果你使用Linq,你应该只能.OrderByDescending()?看一下这里的例子 - http://msdn.microsoft.com/en-us/vcsharp/aa336756.aspx

如果这是您在上一个问题中处理的分数列表,那么您应该能够按分数金额排序,如果它存储为整数,而无需创建自定义比较器功能。订购列表的示例linq查询类似于:

        var sortedItems =
            from item in myObservableCollection
            orderby item.Score descending
            select item;

获得Linq的IEnumerable结果后,您可以重新创建一个ObservableCollection并重新分配给您的ViewModel(Cast LINQ result to ObservableCollection