wpf treeview 搜索功能

qq_39556010 2018-03-16 12:45:22

这个只能搜索最外层的节点
我想要搜索子节点,请问该怎么办


<TreeView x:Name="tree" HorizontalContentAlignment="Stretch"
HorizontalAlignment="Left" Height="512" Margin="10,64,0,0" Grid.Row="1" VerticalAlignment="Top" Width="346">
<TreeView.Resources >
<HierarchicalDataTemplate DataType="{x:Type mo:Node}" ItemsSource="{Binding Nodes}">

<WrapPanel Orientation="Horizontal" >
<StackPanel Margin="2,2,2,2" HorizontalAlignment="Left" >
<TextBlock Text="{Binding Name}" ToolTip="{Binding Name}" Tag="{Binding}"
HorizontalAlignment="Left"></TextBlock>
</StackPanel>
<StackPanel Margin="2,2,2,2" >
<dx:SimpleButton Click="btn_treeadd_Click" Content="+" HorizontalAlignment="Right"
Tag="{Binding}" ></dx:SimpleButton>
</StackPanel>
</WrapPanel>
<!--VerticalAlignment-->
</HierarchicalDataTemplate>
</TreeView.Resources>

</TreeView>


<dx:SimpleButton x:Name="btn_sou" Content="搜索" Click="btn_sou_Click"
HorizontalAlignment="Left" Margin="311,6,0,0" Grid.Row="1" VerticalAlignment="Top" Width="45"/>



<dxe:TextEdit x:Name="txt_sou" HorizontalAlignment="Left" Margin="255,31,0,0" Grid.Row="1" VerticalAlignment="Top" Width="101"/>




private void btn_sou_Click(object sender, RoutedEventArgs e)
{
txt_sou.Visibility = Visibility.Visible;
string strsou = txt_sou.Text.Trim();
Node listFind1 = ListNode.Find(delegate(Node us)
{
return us.Name.Equals(strsou);
});

foreach (Node iten in tree.Items)

{

if (iten.Name == strsou)
{
TreeViewItem tvi = (TreeViewItem)tree.ItemContainerGenerator.ContainerFromItem(iten);
tvi.IsSelected = true;//olors.Red)
tvi.Focus();
return;
}

}
}




...全文
666 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Veary 2018-03-19
  • 打赏
  • 举报
回复
数据在数据库中保存的时候应该不是树形的 检索的时候直接检索数据行不行
it_liang 2018-03-16
  • 打赏
  • 举报
回复
你将你写的查询的操作,写在一个递归里面就可以了

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧