Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[W8/RT-XAML] Delete row met delete button in ListViewItem

Pagina: 1
Acties:

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 19-11 21:48
Ik heb een ListView met in elk ListViewItem een paar objecten en een delete button (Image object).

Hoe kan ik het ListViewItem verwijderen waarin op de delete button (Image object) wordt getapped? Met andere woorden; hoe vind ik in de tapped-event van de delete button de juiste ListViewItem zodat ik MyListView.Items.Remove(ListViewItem) kan gebruiken?

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


Verwijderd

Bij het definieren van een command kan je ook een commandparameter meegeven die je dan dezelfde binding als je ListviewItem geeft ;)

XML:
1
2
3
<ListViewItem>
    <Button Command="{Binding DeleteItemCommand}" CommandParameter="{Binding}">Delete</Button>
</ListViewItem>

  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 19-11 21:48
Verwijderd schreef op vrijdag 28 juni 2013 @ 15:04:
Bij het definieren van een command kan je ook een commandparameter meegeven die je dan dezelfde binding als je ListviewItem geeft ;)

XML:
1
2
3
<ListViewItem>
    <Button Command="{Binding DeleteItemCommand}" CommandParameter="{Binding}">Delete</Button>
</ListViewItem>
Ik gebruik niet daadwerkelijk een Button object, maar een Image object met een tapped event. En in die tapped event wil ik de juiste ListViewItem verwijderen uit de ListView.

Ik gebruik een Image object omdat die geen extra hoogte en breedte heeft als de daadwerkelijke afbeelding. Een image in een button geeft weer extra hoogte en breedte die ik niet wil hebben.

Edit:

XML:
1
<Image Source="Images/bttnDelete.png" Tag="{Binding}" Tapped="DeleteRow_Tapped" />


Visual Basic .NET:
1
2
3
Private Sub DeleteRow_Tapped(sender As Object, e As TappedRoutedEventArgs)
    lstvwIngredients.Items.Remove(sender.Tag)
End Sub

Ik heb gebruik gemaakt van de 'Tag' in het image object. Ik krijg nu de juiste listviewitem via 'Tag' echter krijg ik bij lstvwIngredients.Items.Remove(sender.Tag) een 'Onherstelbare Fout' en de debugger zegt er niets meer over.
Ik kan dus nog steeds niet de listviewitem removen...

[ Voor 26% gewijzigd door Swerfer op 28-06-2013 16:13 ]

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com


  • Swerfer
  • Registratie: Mei 2003
  • Laatst online: 19-11 21:48
Opgelost.

Ik moest het juiste item uit de collection wissen en dan de collection opnieuw toekennen aan de listview.

Visual Basic .NET:
1
2
3
4
5
Private Sub DeleteRow_Tapped(sender As Object, e As TappedRoutedEventArgs)
    IngredientsSource.Remove(sender.tag)
    IngredientItems = New ObservableCollection(Of _Ingredient)(IngredientsSource)
    lstvwIngredients.ItemsSource = IngredientItems
End Sub

Home Assistant | Unifi | LG 51MR.U44 | Volvo EX30 SMER+ Vapour Grey, trekhaak | SmartEVSE V3 | Cronos Crypto.com