1. A computing system comprising: at least one processor; and one or more storage medium having stored computer-executable instructions which, when executed by the at least one processor, implement a method of asynchronously binding data from a binding source to a binding target, wherein the computing system executes a multi-threaded application which displays a user interface via a user interface thread, and wherein the method includes: determining, by the user interface thread, that data to which an element of the user interface is bound is to be updated; accessing, by the user interface thread, a local cache to determine whether updated data is stored in the local cache; requesting a separate thread to retrieve updated data from a data source to which the element of the user interface is bound, such that the user interface thread continues execution without blocking until updated data is obtained; wherein the updated data is requested from the data source by the separate thread; and upon receiving the updated data, storing the updated data in the local cache.