2016-07-21 2 views
0

Я пытаюсь перемещаться между страницами с помощью listitems, но не работает. Моя домашняя страница MainPage.xaml и я хочу, чтобы перейти к «АБВ», когда я нажимаю на изображение Аба в ListViewНавигация между страницами с помощью ListView в UWP

Вот мой код:

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

Думаю, нам нужно больше информации для продолжения. Каково текущее поведение при нажатии на элемент списка? Действительно ли это делается для вызова метода навигации, но не перемещается? Класс dows «xyz» наследуется со страницы? –

+0

Не сразу понятно, почему вы не вызываете перегрузку [Frame.Navigate (TypeName)] (https://msdn.microsoft.com/en-us/library/windows/apps/hh702396.aspx). Во всяком случае, есть возвращаемое значение, которое вы игнорируете. – IInspectable

+0

Я только что протестировал его, и проблема в том, что не включены элементы списка «enabled» ... вам нужно добавить IsItemClickEnabled = «True» в ваш ListView, я написал ответ, вы можете увидеть его в разделе ответа. –

ответ

3

Вы имеете проблему с вашим ListView управления и основной причиной является то, что вы не обладают этим свойством в вашем ListView в XAML:

IsItemClickEnabled = «True»

Так что для того, чтобы решить вашу проблему добавить это свойство IsItemClickEnabled = «True» в 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

Смежные вопросы