创建可编辑的xml文档(之五)执行中的treeview 控件

80酷酷网    80kuku.com

  treeview|xml|创建|控件|执行

执行中的treeview 控件  为了更完美,列表4包含了VB.NET version, or C# version 两个版本的最终treevie 控件。为了更容易使用,我重新定义了结构和代码。同时增加了KeyDown 控制来支持一些默认的快捷键例如:Control-N (新建), F2 (编辑), 和DEL (删除).  这里好象不必附加任何事件,因此最终的api 包含一个方法和八个属性,他们在表1中列出来了,他们大多数都是简单的标志,或者默认的开关,我增加他们时为了让你可以选择使用来增强你的应用程序的可编辑特征 表1:xmltreeview 控件的属性和方法,你可以将它们用到你的应用程序中

Attribute Type Parameter Description
XmlDropTarget Get System.Xml.XmlNode The XML node corresponding to the currently selected node in the TreeView
ActiveXmlDocument Get System.Xml.XmlDocument The XML document bound to the TreeView. This updates as the tree changes
XPathFilter Get; Set string The XPath filter used to identify the element or attribute whose value will be used to display the folder's name. A folder constitutes the tree view's smallest navigable unit
XmlInsertionNode Get; Set System.Xml.XmlNode The template for a new folder. The TreeView caches this, and clones it when a new folder is required.
DragDropActive Get; Set bool Flag denoting whether a drag/drop operation is currently in progress.
EnableEditNode Get; Set bool Flag denoting whether label editing is supported (default is yes)
EnableDeleteNode Get; Set bool Flag denoting whether folder deletion is supported (default is yes)
EnableInsertNode Get; Set bool Flag denoting whether folder insertion is supported (default is yes)
Method: Returns   Parameter   Description  
Load void System.Xml.XmlDocument Loads the specified XML document and uses it to populate the TreeView. Set XPathFilter prior to calling Load() to define an appropriate view on the underlying data.

  

  调用本文章附带的 工程,你可以看到执行中的treeview 控件,这个简单工程是我前面提到的目录管理员中一个剪切版本,还有必要说一下,只需要四行就可以实现一个拖放操作,图三显示让用户创建新的文件夹集合
[C#]
   // Load the XML document from a file
   xmlDocument = new System.Xml.XmlDataDocument();
   xmlDocument.Load(strXmlDocument);
            
   // After setting the path filter, load the 
   // document into the TreeView
   xmlTreeView1.XPathFilter = "attribute::id";
   xmlTreeView1.Load(xmlDocument);
            
   // Defining XmlInsertionNode allows creation of new 
   // nodes within the TreeView
   System.Xml.XmlDocument insert_fragment = new 
      System.Xml.XmlDocument();
   insert_fragment.LoadXml("<product id='New 
      Item'><description/><ordercode/><price/>
      <image/></product>");
   xmlTreeView1.XmlInsertionNode = 
      insert_fragment.DocumentElement;
   
 
   [VB]
   ' Load the XML document from a file
   xmlDocument = New System.Xml.XmlDataDocument()
   xmlDocument.Load(strXmlDocument)
   
   ' After setting the path filter, load the 
   ' document into the TreeView
   xmlTreeView1.XPathFilter = "attribute::id"
   xmlTreeView1.Load(xmlDocument)
   
   ' Defining XmlInsertionNode allows creation of new 
   ' nodes within the TreeView
   Dim insert_fragment As New System.Xml.XmlDocument()
   insert_fragment.LoadXml("<product id='New " & _
      "Item'><description/><ordercode/><price/>" & _
      "<image/></product>")
   xmlTreeView1.XmlInsertionNode = 
      insert_fragment.DocumentElement
图二 显示了一个目录管理员的窗体, 图三显示了一个详细的最终目录

 
. The Catalog Administrator Form: This figure shows the hierarchical TreeView and the details for an item in the catalog administrator form. 
 
. Final Catalog. The figure shows a detail view of the final catalog. 

代码的其他部分处理产品列表的可编辑性,还有更新xml文档。因此当你关闭应用程序时,代码保存所有的修改到文档中。希望这些能够对你的项目有一些好的启发,或者丰富你的组件或者接口的开发。



分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: