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

C# 在UWP中使用ListView在页面之间导航,c#,xaml,listview,navigation,uwp,C#,Xaml,Listview,Navigation,Uwp,我试图使用listitems在页面之间导航,但它不起作用。我的主页是MainPage.xaml,当我在listview中单击Aba图像时,我想导航到“xyz” 这是我的密码: namespace abc { public sealed partial class MainPage : Page { ObservableCollection<Class1> list1 = new ObservableCollection<Class1>(); public

我试图使用listitems在页面之间导航,但它不起作用。我的主页是MainPage.xaml,当我在listview中单击Aba图像时,我想导航到“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;
        }
    }
}
}

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


您的代码在导航方法和其他方面很好,但您需要“启用”要单击的项目,因此添加该属性以便可以将它们用于单击事件。

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


您的代码在导航方法和其他方面很好,但您需要“启用”要单击的项目,因此添加该属性以便可以将其用于单击事件。

我认为我们需要更多信息才能继续。单击列表项时的当前行为是什么?它是否真的进入导航方法调用,但不导航?Dows类“xyz”继承自页面?还不清楚,为什么不调用重载。无论如何,有一个返回值是你们忽略的。我刚刚测试了它,问题是并没有“启用”列表项被点击。。。您需要将IsItemClickEnabled=“True”添加到您的ListView中,我编写了答案,您可以在答案部分看到它。我想我们需要更多信息来继续。单击列表项时的当前行为是什么?它是否真的进入导航方法调用,但不导航?Dows类“xyz”继承自页面?还不清楚,为什么不调用重载。无论如何,有一个返回值是你们忽略的。我刚刚测试了它,问题是并没有“启用”列表项被点击。。。您需要将IsItemClickEnabled=“True”添加到您的ListView中,我编写了答案,您可以在答案部分看到它。
 <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>