2016-07-21 87 views
0

我正在嘗試在使用listitems但不工作的頁面之間導航。我的主頁是MainPage.xaml中,我想導航到「XYZ」當我的列表視圖在UWP中使用ListView在頁面之間導航

這裏點擊阿壩州形象是我的代碼:

namespace abc 
{ 

public sealed partial class MainPage : Page 
{ 
    ObservableCollection<Class1> list1 = new ObservableCollection<Class1>(); 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     Filldata(); 
    } 

    void Filldata() 
    { 
     list1.Add(new Class1 { name = "Aba", image = "ms-appx:///images/aba.png" }); 
     list1.Add(new Class1 { name = "Al", image = "ms-appx:///images/al.png" }); 
    } 

    private void itemclicked(object sender, ItemClickEventArgs e) 
    { 
     var nme = (Class1)e.ClickedItem; 

     switch (nme.name) 
     { 
      case "Aba": 
       Frame.Navigate(typeof(xyz),null); 
       break; 
     } 
    } 
} 
} 

MainPage.xaml中

<ListView x:Name="list" ItemClick="itemclicked"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <Image Height="100" Width="100" Source="{Binding image}"></Image> 
        <TextBlock Text="{Binding name}" HorizontalAlignment="Center"></TextBlock> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

的Class1.cs

class Class1 
{ 
    public String name { get; set; } 
    public String image { get; set; } 
} 
+0

我認爲我們需要更多信息繼續。點擊列表項目時的當前行爲是什麼?它實際上是否使用Navigate方法調用,但不導航? Dows類「xyz」從頁面繼承? –

+0

不立即清楚,爲什麼你不調用重載[Frame.Navigate(TypeName)](https://msdn.microsoft.com/en-us/library/windows/apps/hh702396.aspx)。無論如何,你會忽略一個回報值。 – IInspectable

+0

我剛測試過它,問題是沒有「啓用」列表項目被點擊...你需要添加IsItemClickEnabled =「True」到你的ListView,我寫了答案,你可以在答案部分看到它。 –

回答

3

你有一個問題,你的ListView控制的主要原因是,你不必在你的ListView這個屬性在XAML:

IsItemClickEnabled =「真」

因此,爲了解決您的問題添加該屬性IsItemClickEnabled =「真」在ListView控件在XAML頁面這樣的:

<ListView x:Name="list" 
      ItemClick="itemclicked" 
      IsItemClickEnabled="True"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <Image Height="100" 
          Width="100" 
          Source="{Binding image}"></Image> 
        <TextBlock Text="{Binding name}" 
           HorizontalAlignment="Center"></TextBlock> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

你的代碼是正確的,在導航的方法和其他的東西,但喲你需要「啓用」項目點擊,所以添加該屬性,以便可以使用它們與點擊事件。

+0

thnx男人它的工作 – Ravi