2009-08-09 2 views
1

Другой вопрос, связанный с this one.Сортировка в окне datacontext в WPF

У меня есть List<SortableObjects>, то есть DataContext моего MainWindow. Я использую этот список для заполнения ListBox и ComboBox. Когда я сортирую элементы, как ComboBox, так и ListView уточняйте все правильно. Но теперь мне нужен ComboBox для сортировки по-другому, чем ListView. I. E. Если объектом был Person, в ComboBox, мне нужно будет отсортировать их по LastName, но в ListView, по дням рождения. Как я могу это достичь?

Спасибо!

ответ

2

Использование CollectionViewSource s для каждого из отдельных порядков вы хотите:

<UserControl.Resources> 
    <CollectionViewSource x:Key="ComboBoxSource" Source="{Binding YourUnderlyingCollection}"> 
     <CollectionViewSource.SortDescriptions> 
      <scm:SortDescription PropertyName="SomeProperty"/> 
     </CollectionViewSource.SortDescriptions> 
    </CollectionViewSource> 

    <CollectionViewSource x:Key="ListBoxSource" Source="{Binding YourUnderlyingCollection}"> 
     <CollectionViewSource.SortDescriptions> 
      <scm:SortDescription PropertyName="SomeOtherProperty"/> 
     </CollectionViewSource.SortDescriptions> 
    </CollectionViewSource> 
</UserControl.Resources> 

<ComboBox ItemsSource="{Binding Source={StaticResource ComboBoxSource}}"/> 

<ListBox ItemsSource="{Binding Source={StaticResource ListBoxSource}}"/> 
+0

работал отлично. Спасибо. – Carlo

Смежные вопросы