wpf,下拉列表下拉时显示树结构.

cbgn 2012-04-11 10:59:47
wpf,下拉列表下拉时显示树结构.
...全文
791 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzliang2009 2013-11-14
  • 打赏
  • 举报
回复
http://download.csdn.net/detail/lzliang2009/5531603
_周星星 2013-04-15
  • 打赏
  • 举报
回复
private void ShowTreeView() { itemList.Clear(); for (int i = 0; i < GroupManager.groupsList.Count; i++) { PropertyNodeItem node1 = new PropertyNodeItem() { DisplayName = GroupManager.groupsList[i].name, id = GroupManager.groupsList[i].id, isChecked = false, Name = "This is the discription of Node1. This is a folder.", }; List<User> listUser = new List<User>(); if (GroupManager.groupsList[i].members != null && !GroupManager.groupsList[i].members.Equals("")) { listUser = UserManager.getUsers(GroupManager.groupsList[i].members); } for (int j = 0; j < listUser.Count; j++) { PropertyNodeItem node1tag1 = new PropertyNodeItem() { DisplayName = listUser[j].nickname, isChecked = false, id = listUser[j].id + "", groupId = GroupManager.groupsList[i].id, Name = "This is the discription of Tag 1. This is a tag.", }; node1.Children.Add(node1tag1); } itemList.Add(node1); } this.tvProperties.ItemsSource = null; this.tvProperties.ItemsSource = itemList; }
_周星星 2013-04-15
  • 打赏
  • 举报
回复
internal class PropertyNodeItem { public string type = ""; public string groupId { set; get; } public string id { set; get; } public string DisplayName { get; set; }//员工 public string Name { get; set; } //部门 public List<PropertyNodeItem> Children { get; set; } public bool isChecked { set; get; } public PropertyNodeItem Parent { get; set; } public PropertyNodeItem() { Children = new List<PropertyNodeItem>(); } }
_周星星 2013-04-15
  • 打赏
  • 举报
回复
<TreeView x:Name="tvProperties" Height="300" Padding="0" Margin="60,10,0,0" HorizontalAlignment="Left" Background="Transparent" BorderThickness="0" ScrollViewer.VerticalScrollBarVisibility="Hidden"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Children}"> <Grid Width="205" MouseLeftButtonUp="Grid_MouseLeftButtonUp_1" Height="23"> <TextBox x:Name="updateGroupName" Margin="-90,0,0,0" Width="100" Text="{Binding DisplayName}" Visibility="Collapsed" KeyDown="updateGroupName_KeyDown_1"></TextBox> <TextBlock x:Name="names" FontSize="14" VerticalAlignment="Center" Margin="10,0,0,0" Text="{Binding DisplayName}"/> <Button BorderThickness="0" Tag="{Binding id}" FontSize="18" Width="23" Height="21" Margin="110,-2,0,0" Visibility="Hidden" x:Name="update" ToolTip="编辑" Click="update_Click_2" Style="{StaticResource updatestyle}"> <Button.Background> <ImageBrush ImageSource="images/update.png"/> </Button.Background> </Button> <Button Tag="{Binding groupId}" BorderThickness="0" Width="18" Height="21" FontSize="18" Margin="170,-2,0,0" CommandParameter="{Binding id}" Visibility="Hidden" x:Name="delete" ToolTip="删除" Click="delete_Click_2" Style="{StaticResource deletestyle}"> <Button.Background> <ImageBrush ImageSource="images/delete.png"/> </Button.Background> </Button> </Grid> </HierarchicalDataTemplate> </TreeView.ItemTemplate> </TreeView>
觉悟之时 2012-04-11
  • 打赏
  • 举报
回复
在下拉列表控件的事件中控制一下,判断显示还是隐藏。
林g 2012-04-11
  • 打赏
  • 举报
回复
同样求解
cbgn 2012-04-11
  • 打赏
  • 举报
回复
好的一起分享
梦里独赏花 2012-04-11
  • 打赏
  • 举报
回复
楼主啊 我也遇到这个难题了 如果你解决了 记得分享一下
cbgn 2012-04-11
  • 打赏
  • 举报
回复
查到一些,和我要的还有差距,我先研究下。
<Window.Resources>
<Style x:Key="ComboBoxTreeItem" TargetType="{x:Type ComboBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TreeView x:Name="Tree1" SelectedItemChanged="Tree1_SelectedItemChanged" Initialized="Tree1_Initialized">
<TreeViewItem Header="Test1" x:Name="Tree1Item1">
<TreeViewItem Header="1test1" />
<TreeViewItem Header="2test2" />
</TreeViewItem>
<TreeViewItem Header="Test2" />
</TreeView>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<StackPanel>
<ComboBox Height="23" Margin="22,47,136,0" VerticalAlignment="Top" x:Name="Combo1">
<ComboBoxItem Style="{StaticResource ComboBoxTreeItem}" Name="Combo1Item1" />
</ComboBox>
<Button Height="27" Name="Button1" Width="76">Button</Button>
</StackPanel>
</Grid>

private void Tree1_Initialized(object sender, EventArgs e)
{
//Dim trv As TreeView = CType(sender, TreeView)
//Dim trvitem0 As New TreeViewItem
//trvitem0.Header = "Initialized item"
//Dim trvitem1 As TreeViewItem = trv.Items(1)
//trvitem1.Items.Add(trvitem0)
TreeView trv= sender as TreeView;
TreeViewItem trvitem0=new TreeViewItem() ;
trvitem0.Header = "Initialized item";
TreeViewItem trvitem1= trv.Items[1] as TreeViewItem;
trvitem1.Items.Add(trvitem0);
}

private void Tree1_SelectedItemChanged(object sender, RoutedEventArgs e)
{
//TreeView trv=sender as TreeView ;
//TreeViewItem trvitem=trv.SelectedValue as TreeViewItem;
//ComboBoxItem comitem=new ComboBoxItem ();
//comitem.Content = trvitem.Header;
//Combo1.Items[0] = comitem;

//Dim As TreeView = CType(sender, TreeView)
//Dim trvitem As TreeViewItem = CType(trv.SelectedValue, TreeViewItem)
//Dim comitem As New ComboBoxItem
//comitem.Content = trvitem.Header
//Combo1.Items(0) = comitem
}

private void Button1_Click(object sender, RoutedEventArgs e)
{
//Dim trv As TreeView = Combo1Item1.Template.FindName("Tree1", Combo1Item1)
//If Not trv Is Nothing Then
// Dim trvitem0 As New TreeViewItem
// trvitem0.Header = "Item from Button"
// Dim trvitem1 As TreeViewItem = trv.Items(1)
// trvitem1.Items.Add(trvitem0)
//End If

TreeView trv= Combo1Item1.Template.FindName("Tree1", Combo1Item1) as TreeView;
if( trv !=null)
{
TreeViewItem trvitem0=new TreeViewItem ();
trvitem0.Header = "Item from Button";
TreeViewItem trvitem1 = trv.Items[1] as TreeViewItem;
trvitem1.Items.Add(trvitem0);
}
}
just59277 2012-04-11
  • 打赏
  • 举报
回复
你用个文本框 弄个下拉的箭头图标 然后自己写个面板 面板里面放treeview 不是挺好吗
cbgn 2012-04-11
  • 打赏
  • 举报
回复
qldsrx(青龙白虎)
你说的是一种方法。我想在没有方法时才这样做。
还有没有别的方法,比如在ItemTemplate里用树控件或TreeViewItem。
qldsrx 2012-04-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
WellbeingZhang
能说的具体点吗
[/Quote]
他这是答非所问,还具体?算了吧。

你那个需要自己设置TreeView才行,默认TreeView隐藏,当点击下来按钮才显示,显示的位置是按钮下方,总之是做一个控件,然后调用,这样方便,但是需要会设计自己的控件。
cbgn 2012-04-11
  • 打赏
  • 举报
回复
对,就是下拉的是树型结构
冰镇宝贝321 2012-04-11
  • 打赏
  • 举报
回复
treeview???
cbgn 2012-04-11
  • 打赏
  • 举报
回复
WellbeingZhang
能说的具体点吗
cbgn 2012-04-11
  • 打赏
  • 举报
回复
顶。。。。。。。。。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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