ContentTemplate - это DataTemplate, который отображает объект, который имеет член FooList (ObservableCollection).
<DataTemplate x:Key="ContentTemplate">
<ListBox ItemsSource="{Binding Path=FOO}">
...
</ListBox>
</DataTemplate>
Мне нужно иметь возможность фильтровать этот FooList с использованием CollectionViewSource. Обычно это просто, но я не могу заставить привязку работать в 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 для целевого элемента. BindingExpression: Path = FooList; DataItem = NULL; целевым элементом является «CollectionViewSource» (HashCode = 52991666); Целевым свойством является «Источник» (тип «Объект»)
Мне кажется, что он ищет 'FooList' в CollectionViewSource вместо объекта, привязанного к DataTemplate.
Итак ... как мне заставить это взглянуть на правильный объект?