0
votes

Comment accéder à la vue parentModel de l'intérieur d'une liste ListView.Itemplate?

J'ai ce simple listview code> rempli d'un Observablecollection code>. Une fois la liste liée, j'aimerais accéder au modèle code> VM code> VM de l'intérieur de ce itemTemplate code> de sorte que je puisse lier la commande appelée cmd_delete_mesh code> . Comment cela est fait pour une application UWP XAML (non WPF)?

<ListView x:Name="mesh_list" SelectedItem="{x:Bind vm.selected_mesh, Mode=TwoWay}" ItemsSource="{x:Bind vm.meshes}">
 <ListView.ItemTemplate>
  <DataTemplate>
   <ListViewItem>
     <Button Command="{Binding cmd_delete_mesh}"/>


0 commentaires

3 Réponses :


0
votes

Vous pouvez faire comme si:

<ListView x:Name="mesh_list" SelectedItem="{x:Bind vm.selected_mesh, Mode=TwoWay}"    ItemsSource="{x:Bind vm.meshes}">
 <ListView.ItemTemplate>
  <DataTemplate>
   <ListViewItem>
     <Button Command="{Binding ElementName=mesh_list, Path=DataContext.vm.cmd_delete_mesh}"/>


2 commentaires

Je suis désolé, je n'ai pas remarqué que "VM" était une propriété. J'ai mis à jour l'exemple.


Cela ne déclenche toujours pas ma commande pour une raison quelconque. Je posterai de mon propre exemple bientôt.



0
votes

Je fais cela du code malheureusement ... Je posterai un exemple de mon code bientôt


0 commentaires

0
votes

Vous pouvez définir votre commande dans votre modèle et déclarer un événement dedans. Dans votre viewModel, lorsque vous initialisez la collection 'Meshes', vous pouvez enregistrer cet événement pour chaque article de cette collection. Ensuite, lorsque la commande est exécutée, il vous suffit de soulever l'événement et de faire des opérations dans son gestionnaire d'événements.

J'ai fait un simple échantillon de code pour votre référence: p> xxx pré> XXX PRE>

using GalaSoft.MvvmLight;
using GalaSoft.MvvmLight.Command;


0 commentaires