将CollectionViewSource绑定到ObservableCollection

7

无法绑定CollectionViewSource

DocProps是一个公共属性

public ObservableCollection<DocProp> DocProps1

DataContext 是自身

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

这有效

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

我无法将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>

我该如何将CollectionViewSource绑定到公共属性?
谢谢
1个回答

13

它将会这样工作:

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

这篇文章XAML绑定到ViewModel上的CollectionViewSource属性解释了这种行为的一些原因。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接