标签: treeview

TreeView与列

对于我正在编写的应用程序,我需要一个多柱状的Treeview,我想知道是否有人知道免费工作(在Vs-2010中)多列圆形Treeview.

c# treeview visual-studio-2010

32
推荐指数
1
解决办法
8万
查看次数

如何从HierarchicalDataTemplate项中获取TreeViewItem?

我有一个TreeView使用a HierarchicalDataTemplate绑定其数据.

它看起来像这样:

<TreeView x:Name="mainTreeList" ItemsSource="{Binding MyCollection}>
  <TreeView.Resources>
    <HierarchicalDataTemplate 
     DataType="{x:Type local:MyTreeViewItemViewModel}" 
     ItemsSource="{Binding Children}">
      <!-- code code code -->
    </HierarchicalDataTemplate>
  </TreeView.Resources>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

现在,从主窗口的代码隐藏,我想得到当前选择TreeViewItem.但是,如果我使用:

this.mainTreeList.SelectedItem;
Run Code Online (Sandbox Code Playgroud)

selectedItem属于类型MyTreeViewItemViewModel.但我想得到'父母'或'约束' TreeViewItem.我没有把它传递给我的TreeViewItemModel对象(甚至不知道如何).

我怎样才能做到这一点?

wpf treeview hierarchicaldatatemplate

31
推荐指数
4
解决办法
4万
查看次数

WPF MVVM TreeView SelectedItem

这不可能是这么困难.WPF中的TreeView不允许您设置SelectedItem,表示该属性是ReadOnly.我有TreeView填充,甚至在数据绑定集合更改时更新.

我只需要知道选择了什么项目.我正在使用MVVM,因此没有代码隐藏或变量来引用树视图.这是我找到的唯一解决方案,但它是一个明显的黑客,它在XAML中创建了另一个元素,它使用ElementName绑定将自己设置为树视图选定项,然后您必须绑定Viewmodel.关于此问题还有其他几个问题,但没有给出其他有效的解决方案.

我已经看到了这个问题,但是使用给出的答案给出了编译错误,由于某种原因,我无法将混合sdk System.Windows.Interactivity的引用添加到我的项目中.它说"未知的错误系统.窗口没有被预加载",我还没有想出如何通过它.

对于奖励积分:为什么微软会让这个元素的SelectedItem属性ReadOnly?

wpf treeview mvvm

31
推荐指数
4
解决办法
6万
查看次数

使用文件系统目录结构填充TreeView

我是新的节点在这里.. :)我想出了这个算法,但它只显示父节点的列表..像这样..

a
   a.txt
   b
   c
c
   m
   n
b
   o
   p
etc...
Run Code Online (Sandbox Code Playgroud)

我希望下一个节点将被放入上一个节点内的一个节点..所以它会像这样出现..

a
   a.txt
   b
      o
      p
   c
      m
      n
etc...
Run Code Online (Sandbox Code Playgroud)

我有一些想法,但我可以实现它代码.. :)任何帮助请..

private void ListDirectory(TreeView treeView, String path)
{            
    Stack<string> stack = new Stack<string>();
    TreeNode DirFilesCollection = new TreeNode();

    stack.Push(path);            

    while (stack.Count > 0)
    {
        string dir = stack.Pop();
        try
        {
            List<String> parentDir = new List<string>();
            parentDir.AddRange(Directory.GetFiles(dir, "*.*"));
            parentDir.AddRange(Directory.GetDirectories(dir));

            DirectoryInfo d = new DirectoryInfo(dir);
            TreeNode TParent = new TreeNode(d.Name);

            foreach (String s in parentDir)
            {
                FileInfo f …
Run Code Online (Sandbox Code Playgroud)

.net c# treeview directory-structure winforms

29
推荐指数
1
解决办法
9万
查看次数

如何从代码中选择TreeView项

我有一个三级树视图.如何从代码中选择第三级中的任何项目?我尝试了许多博客和stackoverflow中提到的方法,但它似乎只适用于第一级(对于第一级以下的项目,dbObject为null).

这是我用来选择TreeViewItem的代码.我错过了什么吗?

public static void SetSelectedItem(this TreeView control, object item)
{
    try
    {
        var dObject = control.ItemContainerGenerator.ContainerFromItem(item);

        //uncomment the following line if UI updates are unnecessary
        ((TreeViewItem)dObject).IsSelected = true;

        MethodInfo selectMethod = typeof(TreeViewItem).GetMethod("Select",
            BindingFlags.NonPublic | BindingFlags.Instance);

        selectMethod.Invoke(dObject, new object[] { true });
    }
    catch { }
}
Run Code Online (Sandbox Code Playgroud)

wpf treeview

28
推荐指数
2
解决办法
4万
查看次数

如何让Windows本机查找.NET TreeView?

树

在.NET中使用TreeView组件时,我会看到左侧树的外观.如何为我的.NET TreeView获取正确树(Windows Native Look)的外观?

我特别想要的是"三角形"节点手柄和蓝色"气泡"选择方块.

.net windows treeview winforms

28
推荐指数
1
解决办法
1万
查看次数

从wpf中的文件路径列表填充树视图

有几个示例说明如何从文件路径集合(例如其他示例)填充树视图.我似乎无法为WPF找到这样的例子.我知道我可以集成Windows窗体并使用不同的控件以使其工作但如果我可以使用wpf treeview控件执行相同的操作将会很好.我想要构建的树视图包含大约50,000个文件,因此我认为如果将它绑定到某个东西会更好.但首先在绑定它之前,我认为基于字符串列表构造一个(字符串包含文件的路径)将是有帮助的.

c# wpf treeview code-behind

28
推荐指数
2
解决办法
3万
查看次数

当treeview没有焦点时,C#WinForms会突出显示treenode

Gretings.

我正在创建一个界面来编辑游戏场景.基本上它由具有嵌套条件和动作的事件组成.因此,我计划使用两个树视图 - 一个用于选择事件,另一个用于选择要编辑的事件内的条件/操作.

现在,您看,如果我选择一个事件(在左侧树视图中),然后尝试在右侧树视图中选择一些内容,左侧树视图将停止显示蓝色选择矩形.这显然是不好的,因为现在用户不知道他正在编辑哪个事件!

我发现保留某些关于当前选择的信息的唯一方法是使用SelectedImageIndex,但这只是一个不同的小图像.

有没有其他方法可以突出显示treenode,而没有关注树视图?我知道我可以只使用Graphics.DrawRectangle或者其他东西,但是我听说绘图应该在Paint事件中完成而treeview没有绘制事件...所以我想如果我在失去焦点的情况下绘制它,然后拖动窗体出于屏幕或其他什么,它将被"删除"?

无论如何,请告诉我你是否有想法(除了使用一个单独的图标选择和未选择treenode)

谢谢!

c# treeview treenode winforms

28
推荐指数
4
解决办法
3万
查看次数

在TreeView中使用HierarchicalDataTemplates

关于我之前发布的问题(WPF:正确地将对象存储在TreeViewItem中)

是否可以HierarchicalDataTemplate在TreeView中嵌套?


请看以下示例:

码:

public class Artist
{
        private readonly ICollection<Album> _children = new ObservableCollection<Album>();
        public string Name { get; set; }

        public ICollection<Album> Albums
        {
            get { return _children;}
        }
}

public class Album
{
        private readonly ICollection<Track> _children = new ObservableCollection<Track>();
        public string Name { get; set; }

        public ICollection<Track> Tracks
        {
            get { return _children;}
        }
}
Run Code Online (Sandbox Code Playgroud)

XAML:

<TreeView x:Name="_treeView">
        <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type local:Artist}" ItemsSource="{Binding Albums}">
                        <TextBlock Text="{Binding Name}"/>
                </HierarchicalDataTemplate>
        </TreeView.Resources>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

如您所见,TreeView仅绑定艺术家及其专辑.如何修改它以包括专辑的曲目(作为专辑的子列表,即)?

.net c# wpf treeview xaml

27
推荐指数
1
解决办法
4万
查看次数

如何在c#中以编程方式选择treeview节点?

用于treeview.SelectedNode选择子节点.如何以treeview.AfterSelect编程方式选择节点时调用事件?

this.treeView1.SelectedNode = this.treeView1.Nodes[0].Nodes[0].Nodes[0].Nodes[0]; 
if (this.treeView1.Nodes[0].Nodes[0].Nodes[0].Nodes[0].IsSelected) 
{
 MessageBox.Show("Node is selected"); 
}
Run Code Online (Sandbox Code Playgroud)

c# treeview winforms

27
推荐指数
2
解决办法
11万
查看次数