La liaison ViewModel pour ContentControl comme son DataContext

Je veux changer les contrôles utilisateur clique sur le bouton (je ne vais pas compliquer ici, donc je vais seulement mentionner parties importantes). Donc, l'idée était de lier les ViewModels de ces contrôles utilisateur ContentControl, et de les associer points de Vue à l'aide de DataTemplates.
Voici le code:

<Window x:Class="Project.MainWindow">
<Window.Resources>
    <DataTemplate DataType="{x:Type UserControl:ViewUserControlViewModel}" >
        <UserControl:ViewUserControl/>
    </DataTemplate>
    <DataTemplate DataType="{x:Type UserControl:EditUserControlViewModel}" >
        <UserControl:EditUserControl/>
    </DataTemplate>
</Window.Resources>
<Grid>
    <ContentControl DataContext="{Binding UserControlViewModel}" />
    <Button Content="View" Click="ChangeToView()"/>
    <Button Content="Edit" Click="ChangeToEdit()"/>
</Grid>
</Window>

ViewModel:

public class MainWindowViewModel : DependencyObject
{
    public DependencyObject UserControlViewModel
    {
        get { return (DependencyObject)GetValue(UserControlViewModelProperty); }
        set { SetValue(UserControlViewModelProperty, value); }
    }
    public static readonly DependencyProperty UserControlViewModelProperty = 
           DependencyProperty.Register("UserControlViewModel", typeof(DependencyObject), typeof(MainWindowViewModel), new PropertyMetadata());

    public MainWindowViewModel()
    {
        UserControlViewModel = new EditUserControlViewModel();
    }
}

Mais theres un problème. Quand j'ai démarrer le projet, je ne vois que des boutons, mais pas n'importe UserControls. Qu'ai-je fait de mal?

Est-ce une faute de frappe? Vous vous Inscrivez userControlViewModel, mais se lient à UserControlViewModel.
Oui, c'est une faute de frappe. J'ai corrigé maintenant 🙂

OriginalL'auteur kr85 | 2012-07-19