2012-10-24 4 views
0

J'ai un TreeView, et je veux pouvoir y ajouter des enfants et la base de données Linq to SQL à laquelle il est lié. La meilleure façon que je peux penser (au-dessus de ma tête) serait d'avoir l'utilisateur clic droit sur un nœud parent et avoir l'option d'ajouter un nouvel élément à partir d'un menu contextuel.Treeview ContextMenu sans gestionnaire d'événements Click dans WPF

J'ai ajouté un menu contextuel, mais lorsque j'essaie de le programmer dans le backend, il indique qu'il n'y a pas de gestionnaire d'événements associé.

 <TreeView Name="TreeView1" Margin="3" ItemsSource="{Binding ElementName=ManufacturerWarranty, Path=ManufacturerQuery, UpdateSourceTrigger=PropertyChanged}"> 
      <TreeView.ItemTemplate> 
       <HierarchicalDataTemplate ItemsSource="{Binding Path=WarrantyList}"> 
        <TextBlock Name="txtManufacturerName" Text="{Binding Path=ManufacturerName}"> 
         <TextBlock.ContextMenu> 
          <ContextMenu> 
           <MenuItem Name="mnuAddRecord" Header="Add Year Record"></MenuItem> 
          </ContextMenu> 
         </TextBlock.ContextMenu> 
        </TextBlock> 
        <HierarchicalDataTemplate.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding Path=Years}"> 
           <TextBlock.ContextMenu> 
            <ContextMenu> 
             <MenuItem Name="mnuDelRecord" Header="Remove Year Record"></MenuItem> 
            </ContextMenu> 
           </TextBlock.ContextMenu> 
          </TextBlock> 
         </DataTemplate> 
        </HierarchicalDataTemplate.ItemTemplate> 
       </HierarchicalDataTemplate> 
      </TreeView.ItemTemplate> 
     </TreeView> 

Quelle est la bonne façon de procéder?

Répondre

0

Vous avez oublié de add handler qui exécutera sur click of menuItem

<ContextMenu> 
    <MenuItem Name="mnuAddRecord" Header="Add Year Record" Click="HandlerInClass"/> 
</ContextMenu> 
+0

Quand j'avais le menu contextuel dans le cadre du TreeView lui-même, j'ai pu faire le gestionnaire dans le code derrière 'sous mnuAddRecord_Click (...) gère mnuAddRecord.click'. J'ai également essayé d'ajouter le gestionnaire comme vous le suggérez, mais j'avais des difficultés à obtenir les informations d'enregistrement pour le nœud d'origine. Je vais regarder dans plus. – AndyD273