2017-03-04 9 views
0

私はListViewを持っています。私が達成しようとしているのは、リストアイテムをクリックすると、その特定のアイテムに固有の別のページに移動する必要があるということです。 私はナビゲーションページを使用するように呼びかけました(コード内のコメントを参照してください)。ListItemから対応するページに移動する方法は?

MainPage.xamlを

<?xml version="1.0" encoding="utf-8" ?> 
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
     xmlns:local="clr-namespace:App1" 
     x:Class="App1.MainPage" 
     Title="MainPage"> 

<ContentPage.Content> 
    <StackLayout> 
     <Label Text="Dynamic ListView" HorizontalOptions="Center"></Label> 
     <ListView x:Name="lstView" HasUnevenRows="true"> 

     </ListView> 
    </StackLayout> 
</ContentPage.Content> 
</ContentPage> 

MainPage.xaml.cs

public partial class MainPage : ContentPage 
{ 
    public MainPage() 
    { 
     InitializeComponent(); 
     //BindingContext = this; 

     string[] courses = 
     { 
      "ADO.NET By Example", 
      "Xamarin.Android", 
      "Xamarin.iOS", 
      "Xamarin.Forms", 
      "JAVA EE: Java Server Pages", 
      "JAVA EE: Programming Servlets" 
     }; 

     lstView.ItemsSource = courses; 

     lstView.ItemSelected += async (sender, e) => 
     { 
      if (e.SelectedItem == null) 
      { 
       // don't do anything if we just de-selected the row 
       return; 
      } 
      else 
      { 
       if (e.SelectedItem.ToString() == "ADO.NET By Example") 
       { 
        await Navigation.PushAsync(new Project1()); /// It throws an error here saying I need to use a Navigation Page. 
       } 
      } 
     }; 
    } 
    } 

Project1のは、メインページと同じレベルにある新しいページ。また、GetMainPage()メソッドでコードを変更することをお勧めする人もいます。私は私のアプリケーションでGetMainPage()を持っていません。

答えて

1

あなたは

await Navigation.PushAsync(new Project1()); 

を使用しようとする場合は、その後、あなたは私が提案するあなたの項目

await Navigation.PushAsync(new Project1(e.SelectedItem)); 

をProject1のために渡すことができNavigationPage

として
MainPage = new NavigationPage(new MainPage()); 

をごMaingPageを定義しておく必要があります最も洗練されたコードを持つようにMVVMを見てください

+0

私はこれを理解しているか分からない。 – adityawho

+0

あなたのXFの出発点はMainPageです(別の名前を使用するためにあなたの "MainPage"を変更する必要があります...)。 App.csでは、ポスト –

+0

https://developer.xamarin.com/samples/xamarin-forms/Navigation/で提案したように、このMainPageをNavigationPageに設定する必要があります。XFでナビゲーションを使用するサンプルがたくさんあります –

関連する問題