当前位置: 首页 > 知识库问答 >
问题:

需要在树状视图中的选定项目上显示和编辑数据

端木乐语
2023-03-14

新WPF, C#,.网在这里!

我正在开发一个用户界面来管理用户权限。我决定用树景,我刚开始工作。几乎100%基于此“按需加载”解决方案:http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode

我已经让treeView正常工作了,但是现在我需要添加一些东西,以便在我在treeView中选择一个项目时显示和编辑数据。我想它应该像“regedit”一样工作,左边是树视图,右边是数据。

树视图中的项目不同,因此数据视图需要根据所选项目进行更改。

我觉得我拥有所有的手柄,但我缺乏技能,无法将它们组合在一起。我已经尝试使用isS选属性。但是我中枪了。

如果你们能让我知道我需要做什么,我可以仔细阅读。我想这家伙可能有我需要的解决方案,但我想我只是不明白那里发生了什么:WPF TreeView选中的项目和显示用户控件

到目前为止,这是我的方法:

  • 为每个TreeItem类型创建EditView UserControl
  • 根据所选的ItemType,将特定的EditViewUserControl加载到主窗口中的GroupBox中。
  • 我陷入了一些非静态到静态的错误中。

如有任何建议和建议,我们将不胜感激:)

共有1个答案

高修伟
2023-03-14

您可以使用TreeView的SelectedItemChanged事件(https://msdn.microsoft.com/en-us/library/system.windows.controls.treeview.selecteditemchanged(v=vs.110)。aspx)以确定项目选择何时发生。显示每个项目对应的用户控件的方法听起来是正确的。在SelectedItemChanged处理程序中,您可以检查项目的类型并显示正确的用户控件。您可以将基础项对象的引用传递给用户控件,以便它可以填充其内部控件(textfield、ComboBox等)。

我不确定您的非静态到静态错误是什么。但一般的规则是,静态上下文可以在非静态上下文中使用。但是,非静态上下文不能在静态上下文中使用。意思是,如果有两个字段,A(静态)和B(非静态);和2种方法C()(静态)和D()(非静态)。在方法D()中,可以使用字段A和B,也可以调用方法C()。但是,在方法C()中,只能使用字段A。只要代码遵循这些规则,就不会出现任何静态/非静态错误。

 类似资料:
  • 我正在实现一个类别映射器。有2树视图。两者都包含来自不同来源的类别。(即使他们看起来像来自同一个来源) 用户应该能够将一个类别从左侧映射到右侧树状视图的多个。它存储在配置文件中。 但是,当视图最初加载并且用户单击左侧的类别时,我想预选右侧的映射类别,从配置文件加载。 我看到我可以用一个选项来做这件事,但是我没有看到一个选项可以用多个选项来做这件事。 我怎样才能做到这一点? 这里有一个ootb正在运

  • 我有一个树状视图,其中有可选择的项,以及可能触发某些代码操作的子项。单击子项时,应执行操作,但父项必须保留/成为选定项。 我面临的问题是项目没有被正确取消选择,导致在树视图中选择多个项目。 以下是treeview的xaml: clsBindingDebugger除了调试打印转换的值并传递转换和转换回值之外什么也不做。 接下来是TreeviewItem类的略为缩短的版本 最后我触发事件MyTreev

  • 我在中显示一个网络列表,我希望当我点击一个项目时,它会显示一个请求

  • 我正在使用PyCharm社区版4.5.1。假设我在编辑器中打开了一个文件,并且我想在项目视图中看到它(通常这样我就可以打开兄弟文件)。我该怎么做? 我用谷歌搜索了各种“导航”和“查找”之类的方式,它总是一些相关的概念,但不是这个。

  • 我一直在制作一个可以在Android中使用ListView的应用程序,但我无法使所选(chacked)项具有不同的背景。我用的是CHOICE_MODE_SINGLE。到目前为止,我的代码是这样的: 我使用的列表视图: (inside layout.xml) 我在适配器中使用的TextView布局: (listItem.xml) 这是我添加适配器的地方: 我确信在单击时选中了正确的项,因为当我调用g

  • 我有一个从内部存储器加载图像的回收器视图。我想在单击时突出显示所选项。我试了很多方法,但都不起作用。实际上,我需要的是,当我在Recycler视图中单击任何项目时,该项目必须进入我的ArrayList,它也应该突出显示,当我单击或说unselect时,它必须再次变为正常。以下是我的代码: 这是我的适配器类: