Panoramaanwendungen sollten keine Application Bar verwenden. Da aber dennoch Items angelegt, gelöscht etc. werden müssen, bietet sich für Listeneinträge ein Kontextmenü an. Ein solches ist im Silverlight Toolkit für Windows Phone 7 enthalten.

Silverlight Toolkit für Windows Phone 7 einbinden

Nach erfolgtem Einbinden der Assembly ist ein entsprechender XML-Namespace zu setzen:

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"

Im Anschluss kann das Kontextmenü beispielsweise so aufgebaut werden:

<StackPanel x:Name="ListEntry" Orientation="Horizontal">
<TextBlock Text="{Binding Distance}" TextWrapping="Wrap" />
<TextBlock Text="{Binding AreaType}" TextWrapping="Wrap" />
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Header="Create"
Command="{Binding CreateCommand}"
CommandParameter="{Binding ElementName=ListEntry,Path=SelectedItem}"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</StackPanel>

Ein derartiges StackPanel kann (wie in meiner eigentlichen Anwendung) als DataTemplate für eine Liste verwendet werden. Dies würde bedeuten, dass jeder Eintrag ein entsprechendes Kontextmenü erhält. Angebunden wird ein Command, der den aktuell ausgewählten Eintrag als Parameter enthält und daraufhin seine Operation ausführen kann.

Hinweis: Für eigene Tests bitte sicherstellten, dass die Bindungen entsprechend angepasst werden, da diese aus einem meiner aktuellen Projekte stammen und in der Umgebung des Lesers nicht funktionieren werden.

In der laufenden Anwendung sieht dies so aus:

Listeneintrag mit Kontextmenü - Windows Phone 7

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.