如何为组合框排序Observable集合

时间:2012-04-17 16:04:53

标签: wpf mvvm

我有查看来源

<view:ValidationBaseView x:Class="test.View.test"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:res="clr-namespace:test.Resources"
    xmlns:local="clr-namespace:test"
    xmlns:view="clr-namespace:test.View"
    xmlns:viewModel="clr-namespace:test.ViewModel"
    Height="Auto" Width="Auto">

    <UserControl.DataContext>
        <viewModel:testviewmodelx:Name="testview"/>
    </UserControl.DataContext>

然后我有我的UI元素 我已经使用ObservableCollection绑定了Combobox。但我知道我需要在组合中对值进行排序。

<ComboBox Grid.Column="0" 
          Grid.Row="3" 
          x:Name="combo1" 
          Margin ="0" 
          ItemsSource="{Binding Path=test}" 
          DisplayMemberPath="testpath"/>

1 个答案:

答案 0 :(得分:1)

使用ICollectionView。像这样:

// this is your existing collection of items
var items = ...;

var cv = new ListCollectionView(items);

// this will sort by the Foo property of each item
cv.SortDescriptions.Add(new SortDescription("Foo"));

在您的视图中,绑定到集合视图而不是原始项目。