【问题标题】:UWP AdaptiveGridView ItemsClick spécial actionUWP AdaptiveGridView ItemsClick 特殊动作
【发布时间】:2016-11-18 10:31:47
【问题描述】:

我是法国人,如果我的英语不是很好,我很抱歉。

我正在使用 NuGet 包 UWP 工具包将 AdaptiveGridView 插入页面的 UWP 应用程序。它包含几张可以点击的照片。

我希望每次点击都有不同的操作,这里有一个例子:

点击 Image1 = 导航到第 2 页

单击 Image2 = 导航到第 3 页

我该怎么做? 这是我的代码:

using Microsoft.Graph;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;

// Pour plus d'informations sur le modèle d'élément Page vierge, voir la page http://go.microsoft.com/fwlink/?LinkId=234238

namespace UWPOffice365cs
{
    /// <summary>
    /// Une page vide peut être utilisée seule ou constituer une page de destination au sein d'un frame.
    /// </summary>
    public sealed partial class PresentationExcelPage : Page
    {
        public PresentationExcelPage()
        {
            this.InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            List<MyImage> data = new List<MyImage>();
            data.Add(new MyImage()
            {
                ImageUrl="ms-appx:///Assets/SurfaceTravail.png"

            });
            data.Add(new MyImage()
            {
                ImageUrl="ms-appx:///Assets/Ruban.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/feuilles.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Donnees.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/ContenuCell.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/MEF.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/LignesColonnes.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Marges.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/PiedPage.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/ZoneImprim.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Imrpim.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Calculs.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/Somme.png"
            });
            data.Add(new MyImage()
            {
                ImageUrl = "ms-appx:///Assets/AutresFonctions.png"
            });
            MyGrid.ItemsSource = data;
        }

        class MyImage
        {
            public string ImageUrl { get; set; }
        }

        private void Home_Click(object sender, RoutedEventArgs e)
        {
            Frame.Navigate(typeof(ExcelPage));
        }

        private async void OpenFonction_Click(object sender, RoutedEventArgs e)
        {
            StorageFolder openexcel = Windows.ApplicationModel.Package.Current.InstalledLocation;
            StorageFile file = await openexcel.GetFileAsync("ExerciceExcel.xlsx");
            await Windows.System.Launcher.LaunchFileAsync(file);
        }

        private void MyGrid_ItemClick(object sender, ItemClickEventArgs e)
        {
            Frame.Navigate(typeof(testpage),e.ClickedItem);
      }
    }
}

【问题讨论】:

    标签: uwp windows-community-toolkit


    【解决方案1】:

    如果您知道要导航到的页面,那么您没有理由不能将属性添加到您的 MyImage 类以及您要导航到的页面类型,例如:

    class MyImage
    {
        public string ImageUrl { get; set; }
        public Type Page { get; set; }
    }
    
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        List<MyImage> data = new List<MyImage>();
        data.Add(new MyImage()
        {
            ImageUrl = "ms-appx:///Assets/SurfaceTravail.png",
            Page = typeof(MainPage)
        });
        // ... 
    }
    

    然后,当您单击该项目时,您会这样做:

    private void MyGrid_ItemClick(object sender, ItemClickEventArgs e)
    {
        var item = e.ClickedItem as MyImage;
        if (item != null)
        {
            Frame.Navigate(item.Page, item);
        }
    }
    

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-09-26
      • 2017-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2015-04-11
      • 1970-01-01
      相关资源
      最近更新 更多