WPF-Kontext-Menü, deren Elemente definiert sind als die Daten Vorlagen

Habe ich eine Liste Ansicht zeigt eine Auflistung von Elementen, jedes Element hat als die Ihr zugrunde liegenden Daten, die ein view-model (MVVM).

Was ich gerne tun würde, ist die Anzeige verschiedener Menüpunkte im Kontext-Menü, wenn der Benutzer klickt auf eine dieser Liste Elemente anzeigen. Die Menüpunkte angezeigt werden, ist abhängig von der Art des ausgewählten Elements (d.h. die Art der zugrunde liegenden view-Modell).

Ich würde erwarten, dass die unten zu arbeiten, aber es funktioniert nicht (keine Objekte im Kontext-Menü angezeigt).

<ListView.ContextMenu>
<ContextMenu DataContext="{Binding Path=PlacementTarget.SelectedItem, RelativeSource={RelativeSource Self}}">
    <ContextMenu.Resources>                        
        <DataTemplate DataType="{x:Type ViewModels:ViewModel1}">
            <MenuItem Header="DoStuffForVM1" Command="{Binding DoStuffForVM1Command}"/>
        </DataTemplate>
        <DataTemplate DataType="{x:Type ViewModels:ViewModel2}">
            <MenuItem Header="DoStuffForVM2" Command="{Binding DoStuffForVM2Command}"/>
        </DataTemplate>
    </ContextMenu.Resources>
    <ContentPresenter ContentSource="{Binding}" />
</ContextMenu>
</ListView.ContextMenu>

Irgendwelche Ideen?

Dank.

  • Auch noch erwähnenswert ist, ich bekomme keine Datenbindung Fehler.
InformationsquelleAutor RobJohnson | 2012-06-18
Schreibe einen Kommentar