找回密码
 立即注册

QQ登录

只需一步,快速开始

chiefen

中级会员

7

主题

20

帖子

881

积分

中级会员

积分
881

活字格认证

chiefen
中级会员   /  发表于:2013-7-18 14:13  /   查看:8046  /  回复:8
C1.SilverLight5   VS2010
请教一个问题,现在有一个需求是树型控件按节点展开动态加载子节点,这个我可以实现,但目前的问题是必须要在点击节点后,如果能展开会在前边显示出一个小三角,不点的话前边没有显示,这样用户是不清楚这个节点是否有下级,只有点了以后才能知道。而我的程序是能知道某节点是否有下级的,如何能提前在节点前显示出小三角来。请专家们指点,非常感谢!

8 个回复

倒序浏览
gw0506
超级版主   /  发表于:2013-7-18 16:06:00
沙发
有一个简单的办法,你给需要显示三角的节点加一个空的子节点,不设置任何属性。
当点击后,你先把这个节点删除,然后填上真实的数据。
回复 使用道具 举报
chiefen
中级会员   /  发表于:2013-7-19 15:26:00
板凳
这个办法我开始也想到过,但实际实现起来很麻烦,是否有相关的例子呢?
回复 使用道具 举报
chiefen
中级会员   /  发表于:2013-7-22 12:16:00
地板
我已经找到办法解决了
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-22 15:51:00
5#
什么办法,可否分享一下?
回复 使用道具 举报
chiefen
中级会员   /  发表于:2013-7-24 13:54:00
6#
就是你讲的方法,开始是因为节点展开状态一直控制不好,后来改成双绑就可以了
  1. <c1:C1TreeView c1:C1NagScreen.Nag="True" x:Name="tree1" ItemExpanded="tree1_ItemExpanded">
  2.                 <c1:C1TreeView.ItemContainerStyle>
  3.                     <Style TargetType="c1:C1TreeViewItem">
  4.                         <Setter Property="IsExpanded" Value="{Binding IsExpd,Mode=TwoWay}"/>
  5.                     </Style>
  6.                 </c1:C1TreeView.ItemContainerStyle>
  7.                 <c1:C1TreeView.ItemTemplate>
  8.                     <c1:C1HierarchicalDataTemplate x:Name="treeTemplate" ItemsSource="{Binding Nodes}">
  9.                         <StackPanel Orientation="Horizontal">
  10.                             <Image HorizontalAlignment="Left" Width="14" Height="13" Source="***/treeNode.png" Stretch="Fill" Margin="0 0 5 0"/>
  11.                             <TextBlock Text="{Binding NodeName}"/>
  12.                         </StackPanel>
  13.                     </c1:C1HierarchicalDataTemplate>
  14.                 </c1:C1TreeView.ItemTemplate>
  15.             </c1:C1TreeView>
复制代码

每次加载一级节点时,把存在下级节点的节点强制加一个名叫“loading...”的假子节点,在“tree1_ItemExpanded”方法中把节点下的内容替换为真实的子节点,同时加再下一级的假节点。
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-24 14:12:00
7#
Cool!
我只是提供了一个想法而已,你的实现让我耳目一新,尤其是这个叫“loading...”的假子节点,确实太“假”了!哈哈。

如果你愿意的话,我希望你把上面这段帖子,加上些需求描述,再配上截图和Demo,做成一个用户案例。我这边可以为你准备一份礼品。不知你意下如何?
回复 使用道具 举报
chiefen
中级会员   /  发表于:2013-7-26 15:44:00
8#
回复 7楼gw0506的帖子

我简单写了个DEMO,如何发给你?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2013-7-26 16:13:00
9#
我给你发了论坛短消息,请查看。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部