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

时间:2016-07-21 19:07:56

标签: 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 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; }
}

1 个答案:

答案 0 :(得分:3)

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

  

<强> IsItemClickEnabled = “真”

因此,为了解决您的问题,请在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>

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