WPF MenuItem.Command liaison aux résultats ElementName à System.Windows.Data Erreur: 4: Impossible de trouver la source pour la liaison avec référence

J'ai le code XAML suivant:

<UserControl x:Class="EMS.Controls.Dictionary.TOCControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:EMS.Controls.Dictionary.Models"
xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase"
x:Name="root"  >
<TreeView                    
x:Name="TOCTreeView"                    
Background="White"
Padding="3,5"      
ContextMenuOpening="TOCTreeView_ContextMenuOpening"
ItemsSource="{Binding Children}" BorderBrush="{x:Null}"  >
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children, Mode=OneTime}">
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<!--<ColumnDefinition Width="Auto"/>-->                       
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!--<CheckBox VerticalAlignment="Center" IsChecked="{Binding IsVisible}"/>-->   
<ContentPresenter Grid.Column="0" Height="16" Width="20"
Content="{Binding LayerRepresentation}"  />
<!--<ContentPresenter Grid.Column="1"      >
<ContentPresenter.Content>
Test
</ContentPresenter.Content>
</ContentPresenter>-->
<TextBlock Grid.Column="2" FontWeight="Normal" Text="{Binding Path=Alias, Mode=OneWay}" >
<ToolTipService.ToolTip>
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"/>
</ToolTipService.ToolTip>
</TextBlock>
</Grid>
<HierarchicalDataTemplate.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Children, Mode=OneTime}">
<!--<DataTemplate>-->
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>                               
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<CheckBox VerticalAlignment="Center" IsChecked="{Binding IsVisible}"/>
<ContentPresenter Grid.Column="1"
Content="{Binding LayerRepresentation, Mode=OneWay}"  />
<TextBlock Margin="0,1,0,1" Text="{Binding Path=Alias, Mode=OneWay}" Grid.Column="2">
<ToolTipService.ToolTip>
<TextBlock Text="{Binding Description}" TextWrapping="Wrap"/>
</ToolTipService.ToolTip>                   
</TextBlock>
</Grid>
<!--</DataTemplate>-->
</HierarchicalDataTemplate>                  
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate> 
<TreeView.ContextMenu>
<ContextMenu>
<MenuItem Name="miRemove" Header="Remove"
Command="{Binding ElementName=root, Path=RemoveItemCmd, 
diagnostics:PresentationTraceSources.TraceLevel=High}">
<MenuItem.Icon>
<Image Source="../images/16x16/Delete.png"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Properties"
Command="{Binding ElementName=root, Path=GetItemPropertiesCmd}"/>               
</ContextMenu>       
</TreeView.ContextMenu>
</TreeView>
</UserControl>

Le Code derrière pour ce UserControl a deux ICommand propriétés avec des noms: RemoveItemCmd et GetItemPropertiesCmd. Cependant, je reçois

Système.De Windows.Erreur de données: 4 : Impossible de trouver la source pour la liaison avec la référence "ElementName=root'. BindingExpression:Path=RemoveItemCmd; DataItem=null; élément cible est " MenuItem (Nom='miRemove'); cible de propriété est "Commande" type ICommand') 
Système.De Windows.Erreur de données: 4 : Impossible de trouver la source pour la liaison avec la référence "ElementName=root'. BindingExpression:Path=GetItemPropertiesCmd; DataItem=null; élément cible est "MenuItem' (Name="); la propriété cible est "Commande" type ICommand') 

quand UserControl est construit. Pourquoi est-ce et comment puis-je le résoudre?

source d'informationauteur Klaus Nji