找回密码
 立即注册

QQ登录

只需一步,快速开始

wyw926

注册会员

3

主题

9

帖子

93

积分

注册会员

积分
93
最新发帖
wyw926
注册会员   /  发表于:2016-7-14 14:28  /   查看:4558  /  回复:7
正在做一个类似通讯录的功能,使用的WPF下C1TreeView,用的HierarchicalDataTemplate 绑定一个List<Agent> 结构作为数据源,我看到C1TreeView有个EditTemplate的功能,请问,怎么能够像资源浏览器那样实现 双击编辑节点里的textBlock内容,右键弹出菜单,添加或删除 节点?急!非常感谢!
我的代码
<c1:C1TreeView Name="unitTree" BorderThickness="0" VirtualizingPanel.IsVirtualizing="True">
                        <c1:C1TreeView.ItemTemplate>
                            <HierarchicalDataTemplate ItemsSource="{Binding subAgents}">
                                <StackPanel Orientation="Horizontal">
                                    <Image Source="/Resources/folderblue16.png" />
                                    <TextBlock Text="{Binding AgentName}"/>
                                </StackPanel>
                            </HierarchicalDataTemplate>
                        </c1:C1TreeView.ItemTemplate>                       
                    </c1:C1TreeView>

7 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2016-7-14 17:59:04
沙发
我理解你的两个问题都是业务逻辑的问题,如下:
1.树节点的编辑。
您在代码里放入了一个TextBlock,TextBlock是不可编辑控件。替换成TextBox就可以实现编辑。
2.可以设置ContextMenu属性,指定一个Menu菜单。右键的时候就可以展示出来。
  1. <c1:C1TreeView.ItemContainerStyle>      
  2.                 <Style TargetType="c1:C1TreeViewItem">         
  3.                     <Setter Property="ContextMenu" Value="{StaticResource menu}"/>         
  4.                 </Style>              
  5.             </c1:C1TreeView.ItemContainerStyle>
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
wyw926
注册会员   /  发表于:2016-7-14 18:16:14
板凳
啊,对哦,抱歉,我是新手
谢谢了,我再试试
回复 使用道具 举报
wyw926
注册会员   /  发表于:2016-7-14 18:22:30
地板
Alice 发表于 2016-7-14 17:59
我理解你的两个问题都是业务逻辑的问题,如下:
1.树节点的编辑。
您在代码里放入了一个TextBlock,TextB ...

可是,如果用textbox,单击就会进入到编辑状态,我希望是用户双击,或者按F2键,才进入到编辑状态
回复 使用道具 举报
wyw926
注册会员   /  发表于:2016-7-14 19:06:04
5#
C1TreeView 有一个 EditTemplate  怎么用,文档里都找不到
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-15 17:22:21
6#
wyw926 发表于 2016-7-14 19:06
C1TreeView 有一个 EditTemplate  怎么用,文档里都找不到

基本思路就是使用textbox设置EditDataTemplate,双击时候会触发该模板

//创建模板
DataTemplate x:Key="editableName">
                <TextBox/>
            </DataTemplate>

//事件触发
<TreeView.ItemContainerStyle>
    <Style TargetType="{x:Type TreeViewItem}">
        <EventSetter Event="MouseDoubleClick" Handler="OnItemMouseDoubleClick" />
。。。。
或是使用C1TreeView的ItemClick事件,在事件里去设置。

请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
wyw926
注册会员   /  发表于:2016-7-29 17:17:26
7#
谢谢你,搞定了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2016-7-29 17:39:49
8#
wyw926 发表于 2016-7-29 17:17
谢谢你,搞定了

好的,谢谢您的反馈。
非常赞哦。
周末愉快。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部