At its simplest, a ContentControl displays the data assigned to its Content property.
Will display the string "Hello World!". The Content property is the control's default property and so the above example can also be written as:
If you assign a control to a ContentControl then it will display the control, for example:
Display content with templates
So far so uninteresting. Where ContentControl becomes useful is in tandem with data binding and data templates. By setting the ContentTemplate property one can specify how the data in the Content property is displayed. For example given the following view models: