Używam RadDataFilter do filtrowania ItemSource z RadTreeView, ale kiedy ten kod jest wykonywany, filtr stosuje się tylko do węzłów root, które są niewystarczające. Czy istnieje sposób, aby filtr został obniżony w hierarchii węzłów, aby mój predykat był wywoływany dla każdego węzła? Innymi słowy, czy filtr można zastosować do TreeView jako całości?Filter RadTreeView Przedmioty według RadDataFilter
RadDataFilter: źródło jest wiążące dla ObservableCollection w ViewModel.
<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>
I wiedzieć, że filtr jest właściwością (nie DP) ItemsCollection który nie jest DependencyObject i tak DP Wartość dziedziczenie nie ma. Każdy węzeł w drzewie ma własną kolekcję ItemsGollection, która ma własny filtr. Jak mogę ustawić każdy filtr węzła?
można użyć funkcji LoadOnDemand następnie zastosować filtr do każdego dziecka, jak to zostanie dodana do drzewa? Teoretycznie powinno to poprawić wydajność, szczególnie jeśli twoje zbiory danych będą rosły. –
powinieneś zadać to pytanie telomerowi. Mam na myśli na forach telerik. Prawdopodobnie mają odpowiedź. – Cagatay