J'ai vue partagé à l'intérieur de MainPage avec son volet et contenu défini comme « sUWP SPLITVIEW communication en utilisant des événements
Le cadre du volet contient une page qui a un PageListView. Lorsque vous cliquez sur les éléments de la vue de liste, je souhaite mettre à jour le cadre de contenu.
Dans la déclaration de la page de liste, j'ai un gestionnaire d'événements délégués appelé ItemChangedEventHandler. Lorsque l'on clique sur l'élément listview, j'appelle le EventHandler qui notifierait alors tous les objets abonnés à l'événement.
Mon problème est que je n'ai pas de référence à la page du volet. Y a-t-il un moyen d'instancier une page, puis de la passer à la méthode Navigate? Si je pouvais l'instancier avant de naviguer, je pourrais référencer le PageListView.ItemChanged qui ne serait pas nul comme c'est le cas dans le code ci-dessous et ajouter le gestionnaire d'évènement serait bien. Je ne sais pas comment faire ça. Toute suggestion sera appréciée.
PageListView
public delegate void ItemChangedEventHandler(object sender, Item item);
public sealed partial class PageListView : Page
{
private void PageListView_ItemClick(object sender, ItemClickEventArgs e)
{
Item item = (Item)e.ClickedItem;
ItemChanged(this, item);
}
}
MainPage
public MainPage()
{
this.InitializeComponent();
SplitViewPaneFrame.Navigate(typeof(PageListView));
PageListView.ItemChanged += new ItemChangedEventHandler(Item_Clicked);
}
private void Item_Clicked(Object sender, Item item)
{
SplitViewContentFrame.Navigate(typeof(DetailPage), item);
}
Pourquoi avez-vous besoin d'une page dans le volet? Vous pouvez placer un 'ListView' directement dans le volet, puis vous abonner directement à l'événement' ItemChanged'. – AVK