1. A computer-readable storage medium having computer executable instructions for creating a metadata driven user interface, comprising: accessing metadata from a file represented by extensible markup language (XML) that is used in defining a user interface, wherein the metadata defines controls within the user interface that are each wrapped by a wrapper class that provides functionality for data binding and exposing properties of the control to a code-behind assembly, wherein the metadata for one or more of the controls expose an event by specifying for each of the one or more controls within the metadata a name of an event and a method name for handling the event; and wherein the metadata includes: an XML element binding data to a property of a control of the user interface using a binding expression, the binding expression including a data source for the data, and an XML element specifying an event handler for an event for a control in the code-behind assembly; wherein the event is exposed to the code-behind assembly; wherein properties of the control are accessed through the code-behind assembly; rendering the user interface according to the metadata.