找回密码
 立即注册

QQ登录

只需一步,快速开始

q406157290

高级会员

124

主题

531

帖子

1359

积分

高级会员

积分
1359

活字格认证

大神们:
   辛苦啦!~  快救命啊~~
     我想实现如图的样式,想单纯的实现List绑定在画面上就可以,不需要上下移动之类的功能,希望这个List清晰可见。


  Demo文件夹【C:\Users\pyp\Documents\ComponentOne Samples\Studio for WPF\C1.WPF\CS\C1TreeViewDragDropSample\C1TreeViewDragDropSample2010】下的例子用ItemTemplateSelector 绑定的 其中
  1. <local:CustomTemplateSelector x:Key="CustomTemplateSelector">
  2.             <local:CustomTemplateSelector.Resources>
  3.                 <ResourceDictionary>
  4.                     <c1:C1HierarchicalDataTemplate x:Key="DepartmentTemplate" ItemsSource="{Binding Employees}">
  5.                         <StackPanel Orientation="Horizontal">
  6.                             <!--<Image Source="icons/group.png" Height="14" Width="14"/>-->
  7.                             <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Padding="4 0 4 0"/>
  8.                         </StackPanel>
  9.                     </c1:C1HierarchicalDataTemplate>
  10.                     <DataTemplate x:Key="MaleEmployeeTemplate">
  11.                         <StackPanel Orientation="Horizontal">
  12.                             <!--<Image Source="icons/manager.png" Height="14" Width="14"/>-->
  13.                             <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Padding="4 0 4 0"/>
  14.                         </StackPanel>
  15.                     </DataTemplate>
  16.                     <DataTemplate x:Key="FemaleEmployeeTemplate">
  17.                         <StackPanel Orientation="Horizontal">
  18.                             <!--<Image Source="icons/assistant.png" Height="14" Width="14"/>-->
  19.                             <TextBlock Text="{Binding Name}" VerticalAlignment="Center" Padding="4 0 4 0"/>
  20.                         </StackPanel>
  21.                     </DataTemplate>
  22.                 </ResourceDictionary>
  23.             </local:CustomTemplateSelector.Resources>
  24.         </local:CustomTemplateSelector>
复制代码


这里面太复杂了  没理解,希望能帮我做一个简单的绑定值的三级菜单。谢谢!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-19 17:37:00
沙发
回复 1楼q406157290的帖子

你提出太复杂,应该主要集中在不知道HierarchicalDataTemplate是做什么的。

C1TreeView是利用hierarchical data template来实现树形结构。
HierarchicalDataTemplate顾名思义,分层数据模板,就是用来定义分层数据样式的模板,一般多用于MenuItem和TreeViewItem。
包含几个重要属性:
DataType指定模板用于哪种数据类型
ItemsSource指定该类数据的子集,即下一层显示那些数据
内容 指定数据如何显示 绑定哪个属性。

另外,可以参考msdn的相关资料,对这个类做深入了解。http://msdn.microsoft.com/zh-cn/ ... aldatatemplate.aspx

希望这些能够帮助你很好的理解这个功能,从而实现你的需求。如果依然有问题,欢迎提出来交流。

评分

参与人数 1满意度 +5 收起 理由
q406157290 + 5 嗯嗯 谢谢您的解答! 很有帮助!!~

查看全部评分

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

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
q406157290
高级会员   /  发表于:2015-1-20 11:15:00
板凳
请教个问题哈~   
      C1TreeView里面的List分别是什么结构啊?
    第一个List包含几个ID 和一个名字  第二个里面有什么呀 (现在我要做四级菜单 是不是需要四个List呀  如果要显示  分别都有什么呢) 我好模糊啊  能帮我缕一缕吗~  谢谢!!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-20 17:43:00
地板
回复 3楼q406157290的帖子

在2楼贴出的链接里:http://msdn.microsoft.com/zh-cn/ ... aldatatemplate.aspx
有XAML代码演示这个结构,你可以再看看。

  1. <Window x:Class="SDKSample.Window1"
  2.   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3.   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4.   Title="HierarchicalDataTemplate Sample"
  5.   xmlns:src="clr-namespace:SDKSample">
  6.   <DockPanel>
  7.     <DockPanel.Resources>
  8.       <src:ListLeagueList x:Key="MyList"/>

  9.       <HierarchicalDataTemplate DataType    = "{x:Type src:League}"
  10.                                 ItemsSource = "{Binding Path=Divisions}">
  11.         <TextBlock Text="{Binding Path=Name}"/>
  12.       </HierarchicalDataTemplate>

  13.       <HierarchicalDataTemplate DataType    = "{x:Type src:Division}"
  14.                                 ItemsSource = "{Binding Path=Teams}">
  15.         <TextBlock Text="{Binding Path=Name}"/>
  16.       </HierarchicalDataTemplate>

  17.       <DataTemplate DataType="{x:Type src:Team}">
  18.         <TextBlock Text="{Binding Path=Name}"/>
  19.       </DataTemplate>
  20.     </DockPanel.Resources>

  21.     <Menu Name="menu1" DockPanel.Dock="Top" Margin="10,10,10,10">
  22.         <MenuItem Header="My Soccer Leagues"
  23.                   ItemsSource="{Binding Source={StaticResource MyList}}" />
  24.     </Menu>

  25.     <TreeView>
  26.       <TreeViewItem ItemsSource="{Binding Source={StaticResource MyList}}" Header="My Soccer Leagues" />
  27.     </TreeView>

  28.   </DockPanel>
  29. </Window>
复制代码

我把代码贴出来了。
其中TreeviewItem的ItemSource绑定了一个List,名字叫MyList。这个MyList的结构在<DockPanel.Resource>里。

  1.       <HierarchicalDataTemplate DataType    = "{x:Type src:League}"
  2.                                 ItemsSource = "{Binding Path=Divisions}">
  3.         <TextBlock Text="{Binding Path=Name}"/>
  4.       </HierarchicalDataTemplate>
复制代码

定义根节点(Legues),以及它所有的子节点(Division)。

  1. <HierarchicalDataTemplate DataType    = "{x:Type src:Division}"
  2.                                 ItemsSource = "{Binding Path=Teams}">
  3.         <TextBlock Text="{Binding Path=Name}"/>
  4.       </HierarchicalDataTemplate>
复制代码

定义Division节点以及它的子节点。

树形结构就是这样嵌套实现的。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

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