2016-11-18 20 views
1

我是法國人,所以我很抱歉如果我的英語不是很好。UWP AdaptiveGridView ItemsClickspécialaction

在UWP應用程序上使用NuGet包UWP工具包將AdaptiveGridView插入到頁面中。它包含幾個可以點擊的照片。

我希望每個點擊有不同的作用,這裏有一個例子:

點擊圖像1 =導航到第2頁

點擊鏡像2 =導航到第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); 
     } 
    } 
} 

回答

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); 
    } 
} 

我希望這有助於。