当前位置:编程学习 > C#/ASP.NET >>

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

wpf,下拉列表下拉时显示树结构. --------------------编程问答-------------------- 楼主啊  我也遇到这个难题了  如果你解决了 记得分享一下   --------------------编程问答-------------------- 好的一起分享 --------------------编程问答-------------------- 同样求解 --------------------编程问答-------------------- 在下拉列表控件的事件中控制一下,判断显示还是隐藏。 --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/magazine/cc700358.aspx --------------------编程问答-------------------- 顶。。。。。。。。。 --------------------编程问答-------------------- WellbeingZhang
能说的具体点吗 --------------------编程问答-------------------- treeview??? --------------------编程问答-------------------- 对,就是下拉的是树型结构 --------------------编程问答--------------------
引用 7 楼  的回复:
WellbeingZhang
能说的具体点吗

他这是答非所问,还具体?算了吧。

你那个需要自己设置TreeView才行,默认TreeView隐藏,当点击下来按钮才显示,显示的位置是按钮下方,总之是做一个控件,然后调用,这样方便,但是需要会设计自己的控件。 --------------------编程问答-------------------- qldsrx(青龙白虎)
你说的是一种方法。我想在没有方法时才这样做。
还有没有别的方法,比如在ItemTemplate里用树控件或TreeViewItem。 --------------------编程问答-------------------- 你用个文本框 弄个下拉的箭头图标 然后自己写个面板 面板里面放treeview 不是挺好吗  --------------------编程问答-------------------- --------------------编程问答-------------------- 查到一些,和我要的还有差距,我先研究下。
<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);
    }
}
--------------------编程问答-------------------- <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> --------------------编程问答-------------------- 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>();
            }      

    } --------------------编程问答--------------------  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;
        } --------------------编程问答-------------------- http://download.csdn.net/detail/lzliang2009/5531603
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,