Click here to Skip to main content
15,881,861 members
Articles / Desktop Programming / WPF
Alternative
Tip/Trick

How to hook up a ViewModel to a window using an attached property

Rate me:
Please Sign up or sign in to vote.
0.00/5 (No votes)
22 Nov 2010CPOL 8.9K   1   2
I also have implemented a MarkupExtension to set the DataContext, which looks like this:[MarkupExtensionReturnType(typeof(ApplicationControllerBase))]public class ApplicationDataContext : MarkupExtension{ private Type dataContextType; public ApplicationDataContext(Type...
I also have implemented a MarkupExtension to set the DataContext, which looks like this:

[MarkupExtensionReturnType(typeof(ApplicationControllerBase))]
public class ApplicationDataContext : MarkupExtension
{
	private Type dataContextType;
	public ApplicationDataContext(Type dataContextType)
	{
		this.dataContextType = dataContextType;
	}

	public ApplicationDataContext()
		: this(null)
	{
	}

	public override object ProvideValue(IServiceProvider serviceProvider)
	{
		return ApplicationControllerBase.GetController(dataContextType);
	}
}


The usage of this is quite simply;
<Grid DataContext="{vm:ApplicationDataContext app:...}">
...
</Grid>


If you set the DataContext on an an element inside <window> rather than directly on Window, you will get your ViewModel object instanciated design-time.

When doing this, you should avoid service or database calls, as they will likely throw configurationexceptions.
You can detect the designer i code using this statement:

if(DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())
{
  ...
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Norway Norway
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Generalwww clothing2shoes com Abercrombie & Fitch Coogi Fashion ... Pin
bagsshoes2822-Nov-10 23:23
bagsshoes2822-Nov-10 23:23 
www clothing2shoes com Abercrombie & Fitch Coogi Fashion designer Air Jordan Retro shoes MBT shoes series North Face Fashion
GeneralVery Nice Article Pin
Sohan Singh Chauhan22-Nov-10 19:29
Sohan Singh Chauhan22-Nov-10 19:29 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.