在 UWP 中使用 ListView 在页面之间导航

Navigation in between pages using ListView in UWP

我正在尝试使用列表项在页面之间导航,但它不起作用。我的主页是MainPage.xaml,我想在列表视图

中点击阿巴图片时导航到"xyz"

这是我的代码:

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

您的 ListView 控件有问题,主要原因是 XAML 的 ListView 中没有此 属性:

IsItemClickEnabled="True"

因此,为了解决您的问题,请在 XAML 页面的 ListView 中添加此 属性 IsItemClickEnabled="True",如下所示:

 <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>

您的代码在导航方法和其他方面没问题,但您需要 "enable" 个项目才能被点击,因此添加 属性 以便可以将它们与点击事件一起使用。