2012-04-08 1 views
4

をのObservableCollectionするCollectionViewSourceをバインドするCollectionViewSource

DocPropsをバインドすることはできません公共の財産である

public ObservableCollection<DocProp> DocProps1 

DataContextの自己

DataContext="{Binding RelativeSource={RelativeSource self}}" 

ですこれは

<ListBox Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Path=DocProps1}"> 

の作品I をソートするCollectionViewSourceを配線することはできませんこれは、でも、私は公共の財産にCollectionViewSourceをバインドするにはどうすればよいDocProps1

<ListBox Grid.Row="0" Grid.Column="0"> 
     <ListBox.ItemsSource> 
      <Binding> 
       <Binding.Source> 
        <CollectionViewSource Source="{Binding Path=DocProps1}"> 
         <CollectionViewSource.SortDescriptions> 
          <scm:SortDescription PropertyName="Name" /> 
         </CollectionViewSource.SortDescriptions> 
        </CollectionViewSource> 
       </Binding.Source> 
      </Binding> 
     </ListBox.ItemsSource> 

を取得しませんか?

おかげ

答えて

8

それはこのように動作します:

<ListBox ItemsSource="{Binding}"> 
    <ListBox.DataContext> 
    <CollectionViewSource Source="{Binding Path=DocProps1}"> 
    </CollectionViewSource> 
    </ListBox.DataContext>  
</ListBox> 

この記事XAML Binding to a CollectionViewSource property on a ViewModelは、この動作のいくつかの説明

+0

が、おかげでトリックをやっています – Paparazzi