Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用TreeView在XAML中显示具有上下文敏感上下文的层次结构_C#_Wpf_Xaml_Mvvm_Treeview - Fatal编程技术网

C# 使用TreeView在XAML中显示具有上下文敏感上下文的层次结构

C# 使用TreeView在XAML中显示具有上下文敏感上下文的层次结构,c#,wpf,xaml,mvvm,treeview,C#,Wpf,Xaml,Mvvm,Treeview,我想将我以前的表单应用程序转换成一个WPF解决方案,尝试遵循MVVM模式 现在我面临的问题是,我想建立一个上下文敏感的上下文菜单-我不知道如何开始 这是表单应用程序中用于生成层次结构和上下文菜单的代码: _tvLocation.Nodes.Clear(); foreach (Data.Location location in LocationManager.GetAll(this.DataSource)) { TreeNode parent = new T

我想将我以前的表单应用程序转换成一个WPF解决方案,尝试遵循MVVM模式

现在我面临的问题是,我想建立一个上下文敏感的上下文菜单-我不知道如何开始

这是表单应用程序中用于生成层次结构和上下文菜单的代码:

_tvLocation.Nodes.Clear();
        foreach (Data.Location location in LocationManager.GetAll(this.DataSource)) {
            TreeNode parent = new TreeNode(location.Name) {
                Tag = location,
                ContextMenu = new ContextMenu(new MenuItem[] { 
                    new MenuItem("Standort löschen", new EventHandler(DelLocation_Click)) { 
                        Tag = location
                    }, 
                    new MenuItem("Raum hinzufügen", new EventHandler(AddRoom_Click)) {
                        Tag = location
                    }
                })
            };
            foreach (Data.Room room in location.GetChildren(DataSource)) {
                TreeNode child = new TreeNode(room.Name) {
                    Tag = room,
                    ContextMenu = new ContextMenu(new MenuItem[]{
                        new MenuItem("Raum löschen", new EventHandler(DelRoom_Click)){
                            Tag = room
                        },
                        new MenuItem("Schrank hinzufügen", new EventHandler(AddLocker_Click)){
                            Tag = room
                        }
                    })
                };
                foreach (Data.Locker locker in room.GetChildren(this.DataSource)) {
                    TreeNode gradChild = new TreeNode(locker.Name) {
                        Tag = locker,
                        ContextMenu = new ContextMenu(new MenuItem[]{
                        new MenuItem("Schrank löschen", new EventHandler(DelLocker_Click)){
                            Tag = locker
                        }
                    })
                    };
                    child.Nodes.Add(gradChild);
                }
                parent.Nodes.Add(child);
            }
            _tvLocation.Nodes.Add(parent);
        }
        _tvLocation.ExpandAll();

有没有办法在WPF中构建类似的东西?当然有-谁能给我一个提示吗?

我几乎相信?您可以在WinForms中使用WPF执行的所有操作都是可能的。请看一些与Treeview和HierarchycalDataTemplate相关的教程。下面是一些有用的例子,我已经解决了显示部分,现在我在命令部分。当然,在WPF中,您可以在表单中执行的所有操作都是可能的,甚至更多。。。我会再次尝试理解这个问题。没关系,我会将问题设置为已解决-显然,我在这里问问题太快了,我找到了一些非常好的教程,解释如何创建命令并将它们绑定到视图。无论如何谢谢你!