2010-10-19 7 views
1

Le tutoriel débutant, j'ai suivi a dit que je devrais créer un espace de noms sur la fenêtre,Comment définir DataContext pour un seul élément?

<Window ... xmlns:vm="clr-namespace:MyApp.ViewModels" /> 

Et puis définissez le DataContext comme celui-ci,

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

Mais je ne veux pas le DataContext à appliquer à toute la fenêtre. Je veux que différents éléments utilisent des contextes différents.

Mon DataGrid est défini comme,

<DataGrid ... DataContext="{Binding}" ItemsSource="{Binding Path=Queue}" 

Je suppose que DataContext="{Binding}" bit utilise essentiellement « l'utilisation contexte parent », mais je ne pourrais pas le mettre à vm:MyViewModel droit là-dedans? Je ne suis pas sûr de la syntaxe appropriée et la fenêtre Propriétés de Visual Studio semble assez inutile en la matière.

Répondre

2

Vous pouvez le faire comme:

Ceci est effectivement la même façon que vous définissez sur une fenêtre.

+0

Assez simple ... Je pense que j'étais des problèmes confus. Merci! – mpen

1

Vous pouvez définir le datacontext sur le contrôle lui-même. Dans le cas d'un DataGrid vous utiliseriez

 <DataGrid.DataContext> 
       <vm:MyViewModel /> 
     </DataGrid.DataContext> 
Questions connexes