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?
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