C# XAML-CollectionViewSource在传递到自定义控件时停止筛选

C# XAML-CollectionViewSource在传递到自定义控件时停止筛选,c#,wpf,xaml,filtering,C#,Wpf,Xaml,Filtering,我在主窗口中有以下CollectionViewSource和一个利用该源的自定义控件: <CollectionViewSource x:Key="cl1List" Source="{Binding Path=ResAmountMap}" Filter="OnCl1Filter"/> //.... <control:ResAmounListView ResAmountMap="{Binding Source={StaticResource cl1List}}" /> 问题

我在主窗口中有以下CollectionViewSource和一个利用该源的自定义控件:

<CollectionViewSource x:Key="cl1List" Source="{Binding Path=ResAmountMap}" Filter="OnCl1Filter"/>
//....
<control:ResAmounListView ResAmountMap="{Binding Source={StaticResource cl1List}}" />
问题是自定义控件中的ListView显示源代码中的所有元素,但我希望它会显示过滤后的元素。 当我在没有自定义控件的主窗口中直接使用ListView时,它只显示过滤的项目


你知道为什么当CollectionViewSource被传递到自定义控件时,过滤停止工作吗?

假设你的操作正确!未显式设置控件的DataContext属性

ItemsSource="{Binding Path=ResAmountMap}"
直接绑定到继承的DataContext,从而直接绑定到视图模型中的源属性,该属性意外地与控件属性同名

换句话说,控件中的ListView根本不使用控件属性

编写如下所示的绑定,如果它不是UserControl,则用控件的实际基类替换UserControl

ItemsSource="{Binding Path=ResAmountMap,
              RelativeSource={RelativeSource AncestorType=UserControl}}"
ItemsSource="{Binding Path=ResAmountMap,
              RelativeSource={RelativeSource AncestorType=UserControl}}"