The Databinding Toolkit for Word 2007 allows you to store custom XML parts and create data-bound content controls all from within the comfort of the Word user interface. I've developed this Word extension myself because I and some of the people I speak to found this feature to be missing from the default Word user interface. If the old model of xml-mapping has a taskpane, why not the newer and in parts cooler model of data-binding content controls! (You can open the task-pane from the developer tab.)
So without further a due, let me give you a screenshot and a rundown of the functional and technical features of this application:
- Allows you to add custom XML parts using a file picker dialog
- Allows you to create new content controls bound to the custom XML part using drag & drop.
- A class for managing task-panes in the Word SDI interface
- Creating data-bound content controls using drag & drop
And some WPF stuff being used:
- A treeview displaying dropdown lists for the selected treenode
- A custom hover panel displaying the item being dragged
Download the toolkit source
So the basic idea is that you can add new custom XML parts, selected them in the drop-down list and drag the XML elements onto your Word document. To choose which type of control will be created you can use the dropdown arrow for the selected tree node. The icon next to the node name is there to visualize the control type.
After you have selected the type of control you want to use, you just drag the item from the task-pane onto your Word document which will create the data-bound control. A custom panel appears which indicates the node you are dragging, the namespace and XPath query. (note that the cursor in the top left corner of the panel didn't want to be screen-grabbed)
Well, that's it for the features. In one of my next blog posts I will show you how you can drag your own custom elements onto the Word surface and have Word create content-controls with data-binding for you. It's quite easy once you know how J Also, the class used to manage the task-pane visibility and ribbon button state is interesting and generic enough to be re-used by your projects.
In the next version of the Databinding Toolkit I want to allow you to drag the non-leaf level nodes onto Word to create a group or table of controls (similar to InfoPath), and some UI improvements, or shiny WPF stuff as I like to call it (try creating a drop-down in a treeview in WinForms). A proper Windows installer will also be provided.
Hope it helps!