【问题标题】:Split page template and tapped event拆分页面模板和点击事件
【发布时间】:2014-02-06 17:37:44
【问题描述】:

我使用显示网格的 Windows 8 项目模板并用我的数据填充它。然后每个网格项目将带我到指定的页面。如何提取被点击的网格项元素以便我可以将用户带到适当的页面?这就是我填充数据的方式:

 private ObservableCollection<MenuItem> MenuItems = new ObservableCollection<MenuItem>();

在 onNavigatedTo() 里面。一切正常

 MenuItems.Add(new MenuItem
        {
            Title = "Tips",
            Subtitle = "Useful information that helps you to become lucid",
            Image = new BitmapImage(new Uri("ms-appx:///Images/tips.png",
            UriKind.RelativeOrAbsolute))
        });
        MenuItems.Add(new MenuItem
        {
            Title = "FAQ",
            Subtitle = "Most commonly asked questions",
            Image = new BitmapImage(new Uri("ms-appx:///Images/faq.png",
            UriKind.RelativeOrAbsolute))
        });
        itemGridView.ItemsSource = MenuItems;
        itemListView.ItemsSource = MenuItems;
        }

【问题讨论】:

    标签: c# windows xaml windows-8 windows-store-apps


    【解决方案1】:

    您在 GridView 和 ListView 中填充了数据。这些控件具有几乎相同的交互。在您的 Xaml 页面中,修改您的 Gridview 以至少具有这些属性:

    <GridView x:Name="itemGridView"
      SelectionMode="None"
      IsItemClickEnabled="True"
      ItemClick="ItemView_ItemClick"/>
    

    和 ListView :

    <ListView x:Name="itemListView"
          SelectionMode="None"
          IsItemClickEnabled="True"
          ItemClick="ItemView_ItemClick"/>
    

    并将“ItemView_ItemClick”事件添加到 Xaml.cs 以将用户带到相应的页面。

    更多信息:MSDN 上的How to change the interaction mode (Windows Store apps using C#/VB/C++ and XAML)

    【讨论】:

    • 是的,但是如何确定在 c# 代码中单击了哪个 gridView 元素?我的网格中有很多项目,每个项目都会导航到不同的页面。谢谢
    • @Frugo private void ItemView_ItemClick(object sender, ItemClickEventArgs e) { MenuItem item = (MenuItem)e.ClickedItem; //以item为参数导航到下一页 this.Frame.Navigate(typeof(YourAppropriatePage),item); }
    • 每次单击网格中的任何项目时都会将我带到同一页面。如何为单击的每个网格项编写不同的页面?
    • @Frugo private void ItemView_ItemClick(object sender, ItemClickEventArgs e) { MenuItem item = ( MenuItem )e.ClickedItem; switch (MenuItem.Title) { case "Tips": this.Frame.Navigate(typeof(TipsPage));休息; case "FAQ": this.Frame.Navigate(typeof(FAQPage));休息; } }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多