我正在尝试使用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; }
}
答案 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>
您的代码在导航方法和其他方面很好,但您需要“启用”项目才能被点击,因此添加该属性以便可以将它们与点击事件一起使用。