'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); target является "Source" (тип "Object" )
Мне кажется, что он ищет FooList в CollectionViewSource вместо объекта, привязанного к DataTemplate.
Итак... как мне получить это, чтобы посмотреть на правильный объект?