Tôi đang sử dụng RadDataFilter để lọc ItemSource của RadTreeView, nhưng khi mã này được thực hiện thì bộ lọc chỉ áp dụng cho các nút Gốc không đủ. Có cách nào để làm cho bộ lọc chảy xuống trong hệ thống phân cấp của các nút sao cho vị từ của tôi được gọi cho mỗi nút? Nói cách khác, bộ lọc có thể được áp dụng cho toàn bộ TreeView không?Lọc các mục RadTreeView bằng RadDataFilter
RadDataFilter: Nguồn được gắn với một ObservableCollection trong 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>
Tôi biết rằng Bộ lọc là thuộc tính (không phải là DP) của ItemsCollection không phải là DependencyObject và do đó thừa kế giá trị DP không có ở đó. Mỗi nút trong cây có ItemCollection riêng có Bộ lọc riêng. Làm thế nào tôi có thể thiết lập tất cả các bộ lọc của Node?
Bạn có thể sử dụng chức năng LoadOnDemand sau đó áp dụng bộ lọc của bạn để mọi trẻ em vì nó được thêm vào cây? Về mặt lý thuyết nên tăng cường hiệu suất, đặc biệt nếu các bộ dữ liệu của bạn sẽ phát triển lớn. –
bạn nên đặt câu hỏi này cho telerik. Tôi có nghĩa là trong diễn đàn telerik. Họ có thể có câu trả lời. – Cagatay