2009-11-18 7 views
0

Je rencontre des problèmes avec une arborescence de données dans WPF, je veux essentiellement qu'un menu contextuel soit databound à une propriété IEnumerable sur mon TreeViewItem ViewModel, c'est ce que j'essaie de faire dans le de chaque TreeViewItem:WPF TreeViewItem menu contextuel dyanmic

<Setter Property="ContextMenu"> 
<Setter.Value> 
    <ContextMenu ItemsSource="{Binding ContextMenu}" /> 
</Setter.Value> 

mais il me donne une exception lors du chargement du XAML en disant qu'il ne peut pas mettre ContextMenu sur System.Object ou quelque chose le long de ces lignes.

Quelqu'un peut-il nous éclairer à ce sujet?

Merci

Répondre

1

déclarer comme ressource dans votre style, puis l'attribuer à Valeur StaticResource

<Style> 
    <Style.Resources> 
    <ContextMenu x:Key="contextmenustyle" ItemsSource="{Binding ContextMenu}" /> 
    </Style.Resources> 
    <Setter Property="ContextMenu" Value="{StaticResource contextmenustyle}"> 
</Style> 
+0

ahh, excellente .. Toute idée pourquoi il est impossible que je le faisais? On dirait que je ne le fais pas mal ... ils devraient tous les deux produire le même résultat? –

+0

vérifier pour plus de détails http://blogs.msdn.com/mikehillberg/archive/2006/09/20/SharingAndSetterValue.aspx – viky