Expression Blend usa il namespace d per assegnare comportamenti a design time, ad esempio in uno UserControl SilverLight:

<UserControl ...
xmlns:vm="clr-namespace:DocumentViewer.ViewModel"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d:DesignWidth="640" d:DesignHeight="480">
<UserControl.Resources>
<vm:DocumentVM x:Key="viewmodel" />
</UserControl.Resources>


possiamo sfruttare la proprietà d:DesignInstance insieme a d:DataContext per istruire Blend a creare una istanza della classe indicata:

<Grid x:Name="LayoutRoot" DataContext="{StaticResource viewmodel}" d:DataContext="{d:DesignInstance vm:DocumentVMMock, IsDesignTimeCreatable=True}">

l’aspetto interessante è che a run time il data context è assegnato alla view model DocumentVM, mentre a design time è assegnata a DocumentVMMock, che dai nomi potete immaginare cosa fanno :D, senza necessita di if(IsDesignTime) nel code behind!

 

la figu da Expresion Blend:

 image

 

l’esempio l’ho preso qui che parla di SilverLight 4.0, ma questo funziona anche col 3.0