'ContentTemplate' 是一个 DataTemplate,它显示一个具有成员 'FooList'(一个 ObservableCollection)的对象。
<DataTemplate x:Key="ContentTemplate">
<ListBox ItemsSource="{Binding Path=FOO}">
...
</ListBox>
</DataTemplate>
我需要能够使用 CollectionViewSource 过滤该 FooList。这通常是直截了当的,但我似乎无法让绑定在 DataTemplate 中工作。我试图这样做:
<DataTemplate x:Key="ContentTemplate">
<DataTemplate.Resources>
<CollectionViewSource x:Key="CVS" Source="{Binding Path=FooList}" Filter="FooFilter"/>
<DataTemplate.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource CVS}}">
我从中得到的错误是:
System.Windows.Data 错误:2:找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement。绑定表达式:路径=FooList;数据项=空;目标元素是“CollectionViewSource”(HashCode=52991666);目标属性是“源”(类型“对象”)
在我看来,这听起来像是在 CollectionViewSource 上寻找“FooList”而不是绑定到 DataTemplate 的对象。
那么......我如何让这个看到正确的对象?