问题
Cannot bind the CollectionViewSource
DocProps is a public property
public ObservableCollection<DocProp> DocProps1
DataContext is self
DataContext="{Binding RelativeSource={RelativeSource self}}"
This works
<ListBox Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Path=DocProps1}">
I cannot wire up a CollectionViewSource to sort This does not even get 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>
How do I bind a CollectionViewSource to a public property?
Thanks
回答1:
It will work this way:
<ListBox ItemsSource="{Binding}">
<ListBox.DataContext>
<CollectionViewSource Source="{Binding Path=DocProps1}">
</CollectionViewSource>
</ListBox.DataContext>
</ListBox>
This article XAML Binding to a CollectionViewSource property on a ViewModel has some explanations of this behaviour
来源:https://stackoverflow.com/questions/10066075/binding-a-collectionviewsource-to-observablecollection