RadDataFilter を使用して RadTreeView の ItemSource をフィルター処理していますが、このコードを実行すると、フィルターはルート ノードにのみ適用されますが、これでは不十分です。すべてのノードに対して述語が呼び出されるように、ノードの階層内でフィルターを細流にする方法はありますか? つまり、フィルターは TreeView 全体に適用できますか?
RadDataFilter: Source は ViewModel の ObservableCollection にバインドされています。
<telerik:RadDataFilter Name="radDataFilter"
telerik:StyleManager.Theme="Metro"
Grid.Row="2"
VerticalAlignment="Top"
HorizontalAlignment="Center"
MaxHeight="250"
Width="500"
BorderBrush="SkyBlue"
BorderThickness="2"
Source="{Binding SampleCollection}"
Margin="1" />
the RadTreeView:
<telerik:RadTreeView x:Name="RadTreeView1"
VerticalAlignment="Top"
HorizontalAlignment="Stretch"
Grid.Row="1"
ToolBar.OverflowMode="Always"
BorderBrush="SkyBlue"
BorderThickness="2"
MinHeight="300"
MaxHeight="500"
MinWidth="500"
telerik:StyleManager.Theme="Metro"
ItemsSource="{Binding FilteredSource,ElementName=radDataFilter}">
>
<telerik:RadTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<TextBlock x:Name="Item" Text="{Binding SampleCode}">
</TextBlock>
<HierarchicalDataTemplate.Triggers>
<DataTrigger Binding="{Binding IsDescribed, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Value="true">
<Setter TargetName="Item" Property="Foreground" Value="Red"/>
</DataTrigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</telerik:RadTreeView.ItemTemplate>
</telerik:RadTreeView>
Filter は DependencyObject ではない ItemsCollection のプロパティ (DP ではない) であるため、DP 値の継承はありません。ツリー内の各ノードには、独自の Filter を持つ独自の ItemsCollection があります。すべてのノードのフィルターを設定するにはどうすればよいですか?