我是法国人,所以如果我的英语不是很好,我很抱歉。
我在UWP应用程序上使用NuGet Package UWP Toolkit将AdaptiveGridView插入到页面中。它包含几张可以点击的照片。
我希望每次点击都有不同的动作,这是一个例子:
点击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);
}
}
}
答案 0 :(得分: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);
}
}
我希望这会有所帮助。