需要显示和编辑数据,对选定的项目在树视图

本文关键字:项目 视图 显示 编辑 数据 | 更新日期: 2023-09-27 18:13:40

新的WPF, c#,。净这里!

我正在做一个管理用户权限的用户界面。我决定使用Treeview,我刚开始工作。几乎100%基于这种"按需加载"解决方案:http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode

我已经得到了treeView工作,但是现在我需要添加一些东西来显示和编辑数据,当我在treeView中选择一个项目。我想它应该像"regedit"一样工作,左边是treeView,右边是data。

在树视图中的项目是不一样的,所以数据视图需要改变取决于所选择的项目。

我觉得我有所有的手柄,但我缺乏技能,不能把它们组合在一起。我试过用isSelected的性质。但我来了。如果你们能给我一个我需要做什么的想法,我可以仔细研究一下。我想这个人可能有我需要的解决方案,但我想我只是不明白那里发生了什么。WPF树视图选定项目并显示用户控件

这是我目前为止的方法:

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

任何建议和指针都是赞赏的:)

需要显示和编辑数据,对选定的项目在树视图

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

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