2010-08-03 16 views
7

Ho parametrizzato di recente il mio contructor di ViewModel. Prima di allora, stavo facendo questo nella mia finestra:Dove creare il ViewModel parametrizzato?

<Window.DataContext> 
    <vm:MyViewModel /> 
</Window.DataContext> 

Il quadro un'istanza ViewModel per me.

So che posso impostare DataContext nel codice ma preferirei un modo XAML in modo che il progettista possa visualizzare i miei dati di prova durante la progettazione.

È possibile?

risposta

14

Utilizzare un ObjectDataProvider se si desidera specificare parametri del costruttore:

<Window.DataContext> 
    <ObjectDataProvider ObjectType="vm:MyViewModel" 
     xmlns:sys="clr-namespace:System;assembly=mscorlib"> 
     <ObjectDataProvider.ConstructorParameters> 
      <sys:String>A string parameter</sys:String> 
      <sys:Int32>42</sys:Int32> 
     </ObjectDataProvider.ConstructorParameters> 
    </ObjectDataProvider> 
</Window.DataContext> 
+0

Grazie, sapevo che si poteva fare. – Kugel

10

Non ho idea di come passare un parametro del contructor, penso che non possa essere fatto (ma sarebbe bello se qualcuno mi dimostrasse che avevo torto).

Che cosa si può fare è impostare le proprietà sul ViewModel, come in

<Window.DataContext> 
    <vm:MyViewModel MyProperty="Hello" /> 
</Window.DataContext> 
+0

iniezione Proprietà, buone e semplici. – Kugel

+0

Semplice e chiaro! – objecto

Problemi correlati