2009-08-09 37 views
1

相關this one另一個問題。排序窗口的datacontext在WPF

我有一個List<SortableObjects>這是我的主窗口的DataContext。我使用該列表來填充ListBoxComboBox。當我對項目進行排序,無論是ComboBoxListView得到更新沒事。但現在我需要的ComboBox在比ListView以不同的方式進行排序。 I. E.如果對象是一個人,在ComboBox,我需要通過名字對它們進行排序,但在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 2009-08-09 12:22:17