标签: treeview

如何使WPF TreeView样式成为WinForms TreeView?

WPF默认的TreeView非常好,我仍然希望它的每个子元素都有行连接,就像Windows Forms TreeView一样.我在互联网上搜索并有一些例子,但设计得不够好.

如何使用WPF实现它?

wpf treeview styles winforms

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

允许在.NET TreeView中进行多选

我陷入了.NET 2.0 Windows Forms.

它看起来不像标准TreeView控件中存在选择多个节点的能力.

我正在尝试为上下文菜单选择执行此操作.因此,复选框不是可接受的UI范例.

提供非常必要的功能的最佳方法是什么?

.net c# treeview .net-2.0 winforms

21
推荐指数
5
解决办法
6万
查看次数

保持树视图的滚动位置

如何在.NET应用程序中维护树视图控件的滚动位置?例如,我有一个树视图控件,并通过添加各种节点的过程将它们固定到底部.在此过程中,我可以滚动树视图并查看不同的节点.问题是当进程完成时,树视图滚动到最底部.

似乎调用treenode.Expand()是让我偏离轨道的原因.展开父节点时,它将获得焦点.

有没有解决的办法?如果我在进程运行时查看特定节点,我不希望它在进程完成时跳转到我身边.

.net treeview winforms

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

从路径列表填充树视图

我正在尝试从文件夹路径列表填充树视图,例如:

C:\WINDOWS\addins
C:\WINDOWS\AppPatch
C:\WINDOWS\AppPatch\MUI
C:\WINDOWS\AppPatch\MUI\040C
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MUI\0409
Run Code Online (Sandbox Code Playgroud)

像这样的输出:

????addins
????AppPatch
?   ????MUI
?       ????040C
????Microsoft.NET
?   ????Framework
?       ????v2.0.50727
?           ????MUI
?               ????0409
Run Code Online (Sandbox Code Playgroud)

请注意列表中没有'C:\ WINDOWS\Microsoft.NET'或'C:\ WINDOWS\Microsoft.NET\Framework'.我已经工作了将近两天,我的代码中有一堆bug.希望我能从这里得到帮助.

谢谢.

埃里克

.net c# vb.net treeview recursive-datastructures

21
推荐指数
5
解决办法
3万
查看次数

如何使用ICollectionView过滤wpf树视图层次结构?

我有一个包含这些数据的假设树视图:

RootNode
   Leaf
   vein
SecondRoot
   seeds
   flowers
Run Code Online (Sandbox Code Playgroud)

我试图过滤节点,以便只显示包含特定文本的节点.假如我指定"L",树将被过滤并仅显示RootNode-> Leaf和SecondRoot-> flowers(因为它们都包含字母L).

在mv-vm模式之后,我有一个基本的TreeViewViewModel类,如下所示:

public class ToolboxViewModel
{
    ...
    readonly ObservableCollection<TreeViewItemViewModel> _treeViewItems = new ObservableCollection<TreeViewItemViewModel>();
    public ObservableCollection<TreeViewItemViewModel> Headers
    {
        get { return _treeViewItems; }
    }

    private string _filterText;
    public string FilterText
    {
        get { return _filterText; }
        set
        {
            if (value == _filterText)
                return;

            _filterText = value;

            ICollectionView view = CollectionViewSource.GetDefaultView(Headers);
            view.Filter = obj => ((TreeViewItemViewModel)obj).ShowNode(_filterText);
        }
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

一个基本的TreeViewItemViewModel:

public class ToolboxItemViewModel
{
    ...
    public string Name { get; private set; …
Run Code Online (Sandbox Code Playgroud)

c# wpf treeview

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

为什么每次双击都会多次引发TreeViewItem的MouseDoubleClick事件?

XAML

<TreeView Name="GroupView" ItemsSource="{Binding Documents}">
            <TreeView.ItemContainerStyle>
                <Style TargetType="{x:Type TreeViewItem}">
                    <EventSetter Event="MouseDoubleClick" Handler="OnTreeNodeDoubleClick"/>
                </Style>
            </TreeView.ItemContainerStyle>
            ....
</TreeView>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

private void OnTreeNodeDoubleClick(object sender, MouseButtonEventArgs mouseEvtArgs)
       {
           Console.WriteLine("{3} MouseDoubleClick Clicks={0} ChangedButton={1} Source={2} Handled={4} ButtonState={5}",
               mouseEvtArgs.ClickCount, mouseEvtArgs.ChangedButton, mouseEvtArgs.OriginalSource,
               mouseEvtArgs.Timestamp, mouseEvtArgs.Handled, mouseEvtArgs.ButtonState);
       }
Run Code Online (Sandbox Code Playgroud)

我发现只需双击一次,就会多次调用事件处理程序.我试图在选项卡中打开一个文件,双击相应的树节点; 所以我需要过滤掉额外的电话.

23479156 MouseDoubleClick Clicks=1 ChangedButton=Left Source=System.Windows.Controls.TextBlock Handled=False ButtonState=Pressed
23479156 MouseDoubleClick Clicks=1 ChangedButton=Left Source=System.Windows.Controls.TextBlock Handled=False ButtonState=Pressed
Run Code Online (Sandbox Code Playgroud)

在我稍微复杂的应用程序中,每次双击它会被提升4次.在一个简单的repro-app上,每次双击它会被提升2次.此外,所有的事件参数参数也是相同的,所以我无法区分最后一个参数.

任何想法为什么这是它的方式?

wpf treeview mouseevent treeviewitem

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

处理可编辑的分层数据/ TreeView~DataGrid混合

我正在寻找一个WPF控件,它是TreeView和DataGrid的混合体,类似于Visual Studio调试器或QuickBooks联系人列表等.

关于如何在WPF中处理可编辑分层数据的任何其他解决方案也将非常受欢迎.

在此输入图像描述

wpf treeview controls datagrid wpf-controls

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

jsTree开设分行

我正在使用JQuery插件jsTree,http://www.jstree.com/ 我可以使用以下方法扩展整个树:

$("#tree").jstree("open_all");
Run Code Online (Sandbox Code Playgroud)

还有一个特定的节点:

$("#tree").jstree("open_node", $('#childNode'));
Run Code Online (Sandbox Code Playgroud)

我很难打开树的一个分支,打开分支打开它很好,但如果它有一个就不打开它的父.

有没有人用jsTree成功完成这项工作?如果您需要更多信息,请告诉我.

谢谢

EEF

javascript treeview jquery jstree

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

在WPF中使用TextBox的TreeViewItem:键入特殊字符

我需要编辑一些层次结构,我用TreeViewTextBoxes

简短的例子

<TreeView>
    <TreeView.Items>
        <TreeViewItem Header="Level 0">
            <!-- Level 1-->
            <TextBox Margin="5"
                     BorderThickness="1" BorderBrush="Black" />
        </TreeViewItem>
    </TreeView.Items>
</TreeView>
Run Code Online (Sandbox Code Playgroud)

当我输入TextBox,+,-,字母和数字做工精细,箭头工作,但是当我按下-,Level 0项目崩溃并且当我输入*,没有任何反应

我应该如何处理-并按预期*看到它们TextBox

编辑:

-如果输入Key.OemMinus但不是从数字键盘输入,则可以正常工作Key.Subtract

*如果键入为Shift+ Key.D8但不是数字键盘,则可以正常工作Key.Multiply

c# wpf treeview xaml

21
推荐指数
2
解决办法
1397
查看次数

如何将子项上的Trigger设置为父属性?

我有一个带有ToggleButton(ExpanderButton)的TreeView.togglebutton有两个图像(一个用于展开,一个用于展开).然而,当我选择一个TreeViewItem时,我用不同的颜色高亮一点,我也想改变图像的颜色(我在另一种颜色中有相同的颜色).

问题是我不知道如何在ToggleButton上将触发器属性设置为TreeViewItem上的IsSelected属性.

有任何想法吗?

treeview xaml binding triggers togglebutton

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