gpt4 book ai didi

c# - 通过 RadDataFilter 过滤 RadTreeView 项目

转载 作者:太空狗 更新时间:2023-10-29 23:52:03 26 4
gpt4 key购买 nike

我正在使用 RadDataFilter 来过滤 RadTreeView 的 ItemSource,但是当执行此代码时,过滤器仅适用于 Root 节点,这是不够的。有没有办法让过滤器在节点层次结构中向下渗透,以便为每个节点调用我的谓词?换句话说,过滤器可以应用于整个TreeView吗?

RadDataFilter:Source 绑定(bind)到 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 是 ItemsCollection 的属性(不是 DP),它不是 DependencyObject,因此不存在 DP 值继承。树中的每个节点都有自己的 ItemsCollection,它有自己的过滤器。如何设置每个节点的过滤器?

最佳答案

我建议使用 NodeDataBound 事件,它会为每个单独的节点触发(无论层次级别如何)。这样您就可以完全控制要对节点执行的过滤。

protected void RadTreeView1_NodeDataBound(object sender, RadTreeNodeEventArgs e) 
{
e.Node.ToolTip = (e.Node.DataItem as DataRowView)["Description"].ToString();
}

http://www.telerik.com/help/aspnet-ajax/treeview-server-node-databound.html

关于c# - 通过 RadDataFilter 过滤 RadTreeView 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13043680/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com