如何设置从列表框到另一个页面的页面导航? [英] How to set Page Navigation from Listbox to another Page?

查看:27
本文介绍了如何设置从列表框到另一个页面的页面导航?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好,我正在使用下面给出的 XAML 文件.我想将列表框选定的项目导航到另一个页面.

 <ListBox.ItemTemplate><数据模板><StackPanel Margin="0,0,0,0" Grid.ColumnSpan="3" x:Name="ControlsPanel"Grid.Column="0"高度=215"VerticalAlignment="顶部"><StackPanel Background="#eb2427" Orientation="Horizo​​ntal"><TextBlock Grid.Row="1" FontFamily="Calibri" FontSize="34" FontWeight="Bold" FontStyle="Normal" Margin="10,0,0,0"文本="{绑定名称}"/></StackPanel><ScrollViewer ScrollViewer.Horizo​​ntalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="禁用"><堆栈面板><StackPanel VerticalAlignment="Top" Width="Auto"><ListBox ItemsSource="{Binding Images}" SelectionChanged="NotchsList11_SelectionChanged" Width="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled"><ListBox.ItemsPanel><ItemsPanelTemplate><StackPanel Orientation="Horizo​​ntal" VerticalAlignment="Top"></StackPanel></ItemsPanelTemplate></ListBox.ItemsPanel><ListBox.ItemTemplate><数据模板><Image Source="{Binding}" Width="160" Height="120" VerticalAlignment="Top"></Image></数据模板></ListBox.ItemTemplate></列表框></StackPanel></StackPanel></ScrollViewer></StackPanel></数据模板></ListBox.ItemTemplate></列表框>

我的xml文件如下

<类别><类别名称="照片"><文章><文章标题="Sherawat's"><完整内容><风格>img {padding:2px;} </style><p><img alt="Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://feb2013/bolly---sherawat-s-upcoming-movie-dirty-politics/90_mallika-sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;"/></p><p>Sherawat 准备开始为<em>肮脏的政治<​​/em>&nbsp;在那里她扮演一名护士 Bhanwari Devi,她的谋杀案去年成为头条新闻.与此同时,她开始谈论&nbsp;好莱坞,在那里她并没有真正扮演任何重要的角色.</p></全内容><thumb_image><image url="http://sss.com/Photo1.jpeg"/>"/></thumb_image></文章><article articleid="2684" title="偷走麦秀"><完整内容><div id="container" class="cf"><link rel="stylesheet" href="http://sss.com/imageslider/app/css/demo.css" type="text/css" media="screen"/><link rel="stylesheet" href="http://sss.com/imageslider/app/css/flexslider.css" type="text/css" media="screen"/><div id="主要"角色=主要"><section class="slider"><div class="flexslider"><ul class="slides"><li>Sonam Kapoor<img src="http://sss.com//website/var/tmp/thumb_5814_1_01feb2013__appfeed.jpeg" alt="Kapoor"/>/li></ul></li>

</全内容><thumb_image><image url="http://Photo2.jpeg"/>"/></thumb_image></文章></文章></类别><类别名称="视频"><文章><article articleid="415" title="肮脏的政治"><完整内容><风格>img {padding:2px;} </style><p><img alt="Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://sss.com/bolly/feb2013/bolly---sherawat-s-upcoming-movie-脏政治/90_sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;"/></p></全内容><thumb_image><image url="http://Video1.jpeg"/>"/></thumb_image></文章><article articleid="68" title="数字!"><完整内容><p>触摸、点击、翻转、滑动!你没有&#39;你体验过它.</p><br/><br/><br/><br/><br/></全内容><thumb_image><image url="http://Video2.jpeg"/>"/></thumb_image></文章></文章></类别><类别名称="Bolly"><文章><article articleid="415" title="即将上映的电影"><完整内容><风格>img {padding:2px;} </style><p><img alt="Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://sss.com/bolly/feb2013/bolly---sherawat-s-upcoming-movie-脏政治/90_sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;"/></p></全内容><thumb_image><image url="http://sss.com/website/var/tmp/thumb_5854_90_mallika-sherawat_thumb_bolly__forfeed.jpeg"/></thumb_image></文章><article articleid="436" title="惊喜礼包"><说明>三人组最近的表演不仅仅是好音乐</描述><完整内容><风格>img {padding:2px;} </style><p><img alt="Akcent" pimcore_disable_thumbnail="true" pimcore_id="6110" pimcore_type="asset" src="http://dev2.mercuryminds.com/global/feb2013/surprise-package-at-akcent-concert/18_akcent_global.jpg" style="width: 370px; height: 500px; float: left;"/></p></全内容><thumb_image><image url="http://sss.com/website/var/tmp/thumb_6109_18_akcent_thumb__forfeed.jpeg"/></thumb_image></文章></文章></类别></类别></root>

我的 MainPage.xaml.cs 代码

 void ParseXMLFile(string dataInXmlFile){尝试{//解析XML文件XDocument xmlDoc = XDocument.Parse(dataInXmlFile);var query = from l in xmlDoc.Descendants("Category")选择新的缺口{name = (string)l.Attribute("name").Value,Titles = l.Element("文章").Elements("文章").Select(s => s.Attribute("title").Value).ToList(),图片 = l.Element("文章").Elements("文章").Elements("thumb_image").Elements("image").Select(x => x.Attribute("url").Value).ToList(),};foreach(查询中的var结果){Console.WriteLine(result.name);foreach (var detail in result.Titles.Zip(result.Images, (st, si) => string.Format("{0} {1}", st, si))){Console.WriteLine(详细信息);}}NotchsList11.ItemsSource= 查询;}捕获(例外 e){MessageBox.Show("绑定失败");}}private void NotchsList11_SelectionChanged(对象发送者,SelectionChangedEventArgs e){Notch selectedItemData = (sender as ListBox).SelectedValue as Notch;if(selectedItemData != null){NavigationService.Navigate(new Uri(string.Format("/Test.xaml?parameter",selectedItemData.articleid), UriKind.Relative));}}

我的DetailPage.xaml.cs

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){base.OnNavigatedTo(e);字符串参数 = this.NavigationContext.QueryString["参数"];}

如果我点击任何图片,相关标题和完整内容导航到详细信息页面,但完整内容想要在详细信息页面上显示 webview.所以我尝试了这段代码,但 selectedItemData 得到了空值.我无法导航到其他页面.所以有人可以帮我解决这个问题吗?

解决方案

 private void NotchsList11_SelectionChanged(object sender, SelectionChangedEventArgs e){var lb = 发件人为列表框;如果(lb == null)返回;var articleSubItem = lb.SelectedItem 作为 NotchSubItem;if (articleSubItem == null) 返回;App.CurrentArticle = articleSubItem;NavigationService.Navigate(new Uri("/Test.xaml?selectedItem=" + articleSubItem.ArticleId, UriKind.Relative));NotchsList11.SelectedIndex = -1;}

设置详情页

 protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e){字符串 selectedIndex = "";if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex)){title.Text = App.CurrentArticle.Titles;webBrowser.NavigateToString(App.CurrentArticle.FullContent);}base.OnNavigatedTo(e);}

MainPage.xaml 页面

 <StackPanel VerticalAlignment="Top" Width="Auto"><ListBox ItemsSource="{绑定文章}" Margin="5,5,5,0" Width="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" SelectionChanged="NotchsList11_SelectionChanged"><ListBox.ItemsPanel><ItemsPanelTemplate><StackPanel Orientation="Horizo​​ntal" VerticalAlignment="Top"></StackPanel></ItemsPanelTemplate></ListBox.ItemsPanel><ListBox.ItemTemplate><数据模板><Border BorderBrush="#302c2d" Background="#302c2d" BorderThickness="5,5,5,0" Name="image" Margin="3,0,3,0"><Image Source="{Binding Image}" Width="141" Height="95" Name="value" Stretch="Fill" VerticalAlignment="Top"></Image></边框></数据模板></ListBox.ItemTemplate></列表框></StackPanel><StackPanel Orientation="Horizo​​ntal" VerticalAlignment="Top" Width="Auto"><ListBox x:Name="NotchsList11" ItemsSource="{绑定文章}" Margin="5,0,5,0" ScrollViewer.VerticalScrollBarVisibility="Disabled" SelectionChanged="NotchsList11_SelectionChanged"><ListBox.ItemsPanel><ItemsPanelTemplate><StackPanel Orientation="水平"></StackPanel></ItemsPanelTemplate></ListBox.ItemsPanel><ListBox.ItemTemplate><数据模板><Border BorderBrush="#302c2d" Background="#302c2d" BorderThickness="5,5,5,0" Margin="3,0,3,0"><TextBlock Text="{Binding Titles}" Width="141" Height="90" Padding="3,0,0,30" TextWrapping="Wrap"></TextBlock></边框></数据模板></ListBox.ItemTemplate></列表框></StackPanel></StackPanel>

MainPage.xaml.cs

XDocument xmlDoc = XDocument.Parse(dataInXmlFile);var query = from l in xmlDoc.Descendants("Category")选择新的缺口{name = (string)l.Attribute("name").Value,Titles = l.Element("文章").Elements("文章").Select(s => s.Attribute("title").Value).ToList(),文章 = l.Element("文章").Elements("文章").Select(article => new NotchSubItem{Image = article.Element("thumb_image").Element("image").Attribute("url").Value,ArticleId = article.Attribute("articleid").Value,FullContent = article.Element("FullContent").Value.ToString(),Titles = article.Attribute("title").Value,}).ToList(),图片 = l.Element("Articles").Elements("article").Elements("thumb_image").Elements("image").Select(x => x.Attribute("url").Value).ToList(),};foreach(查询中的var结果){Console.WriteLine(result.name);foreach (var detail in result.Titles.Zip(result.Images, (st, si) => string.Format("{0} {1}", st, si))){Console.WriteLine(详细信息);}}NotchsList11.ItemsSource = 查询;}捕获(例外 e){MessageBox.Show("绑定失败");}

Hi am using XAML file given below.I want to Navigate Listbox selected item to another page.

 <ListBox x:Name="NotchsList11"  Grid.ColumnSpan="2"
           Margin="0,0,0,0" Grid.Row="3" HorizontalAlignment="left" Width="720"  Grid.RowSpan="2">
        <ListBox.ItemTemplate>
            <DataTemplate>
                  <StackPanel Margin="0,0,0,0"  Grid.ColumnSpan="3" x:Name="ControlsPanel"
                        Grid.Column="0"
                        Height="215"
                        VerticalAlignment="Top">
                        <StackPanel Background="#eb2427" Orientation="Horizontal">
                            <TextBlock Grid.Row="1"  FontFamily="Calibri" FontSize="34" FontWeight="Bold"  FontStyle="Normal" Margin="10,0,0,0"
                                Text="{Binding name}"
                                   />               
                        </StackPanel>
                        <ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Disabled">
                        <StackPanel>
                        <StackPanel VerticalAlignment="Top" Width="Auto">
                                 <ListBox ItemsSource="{Binding Images}" SelectionChanged="NotchsList11_SelectionChanged" Width="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled">
                                    <ListBox.ItemsPanel>
                                            <ItemsPanelTemplate>
                                                <StackPanel Orientation="Horizontal" VerticalAlignment="Top">
                                                </StackPanel>
                                            </ItemsPanelTemplate>
                                        </ListBox.ItemsPanel>
                                    <ListBox.ItemTemplate>
                                        <DataTemplate>
                                            <Image Source="{Binding}" Width="160" Height="120" VerticalAlignment="Top"></Image>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>
                     </StackPanel>
                 </StackPanel>
            </ScrollViewer>         
          </StackPanel>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>

My xml file given below

<?xml version="1.0" encoding="utf-8" ?>
  <root>
   <Categories>
     <Category name="Photos">
      <Articles>
       <article  title="Sherawat's">
        <FullContent>
         <style> img {padding:2px;} </style><p> <img alt=" Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://feb2013/bolly---sherawat-s-upcoming-movie-dirty-politics/90_mallika-sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;" /></p> <p>Sherawat is all set to begin shooting for&nbsp;<em>Dirty Politics</em>&nbsp;where she plays Bhanwari Devi, a nurse whose murder hit the headlines last year. Meanwhile, she gets talking on&nbsp;Hollywood where she has not really had any meaty roles.</p>
        </FullContent>
        <thumb_image>
          <image  url="http://sss.com/Photo1.jpeg"/>"/>
        </thumb_image>
       </article>
       <article articleid="2684" title="Steals the Mai Show">
        <FullContent>
          <div id="container" class="cf">
           <link rel="stylesheet" href="http://sss.com/imageslider/app/css/demo.css" type="text/css" media="screen" /> <link rel="stylesheet" href="http://sss.com/imageslider/app/css/flexslider.css" type="text/css" media="screen" /><div id="main" role="main"> <section class="slider"> <div class="flexslider"> <ul class="slides"><li>Sonam Kapoor<img src="http://sss.com//website/var/tmp/thumb_5814_1_01feb2013__appfeed.jpeg" alt="Kapoor"/>/li> </ul></li>
         </div>
      </FullContent>
      <thumb_image>
        <image  url="http://Photo2.jpeg"/>"/>
      </thumb_image>
     </article>
    </Articles>
</Category>
<Category name="Videos">
  <Articles>
    <article articleid="415" title=" Dirty Politics">
     <FullContent>
       <style> img {padding:2px;} </style><p> <img alt="Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://sss.com/bolly/feb2013/bolly---sherawat-s-upcoming-movie-dirty-politics/90_sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;" /></p>
     </FullContent>
     <thumb_image>
       <image  url="http://Video1.jpeg"/>"/>
     </thumb_image>
    </articles>
    <article articleid="68" title="Digital!">
     <FullContent>
    <p> Touch, tap, flip, slide! You don&#39;you experience it.</p> <br/><br/><br/> <br/><br/>
     </FullContent>
     <thumb_image>
       <image  url="http://Video2.jpeg"/>"/>
     </thumb_image>
   </article>
 </Article>
</Category>
<Category name="Bolly">
  <Articles>
   <article articleid="415" title="upcoming movie">
    <FullContent>
     <style> img {padding:2px;} </style><p> <img alt="Sherawat" pimcore_disable_thumbnail="true" pimcore_id="5853" pimcore_type="asset" src="http://sss.com/bolly/feb2013/bolly---sherawat-s-upcoming-movie-dirty-politics/90_sherawat_bolly.jpg" style="width: 500px; height: 370px; float: left;" /></p>
    </FullContent>
    <thumb_image>
     <image url="http://sss.com/website/var/tmp/thumb_5854_90_mallika-sherawat_thumb_bolly__forfeed.jpeg"/>
    </thumb_image>
   </articles>
   <article articleid="436" title="Surprise Package">
     <Description>
       There was more than just good music at the trio's recent performance
     </Description>
     <FullContent>
       <style> img {padding:2px;} </style><p> <img alt="Akcent" pimcore_disable_thumbnail="true" pimcore_id="6110" pimcore_type="asset" src="http://dev2.mercuryminds.com/global/feb2013/surprise-package-at-akcent-concert/18_akcent_global.jpg" style="width: 370px; height: 500px; float: left;" /></p>
     </FullContent>
     <thumb_image>
       <image url="http://sss.com/website/var/tmp/thumb_6109_18_akcent_thumb__forfeed.jpeg"/>
     </thumb_image>
    </article>
   </Article>
  </Category>
 </Categories>
</root>

My MainPage.xaml.cs code

      void ParseXMLFile(string  dataInXmlFile)
    {
        try
        {
          //Parsing XML File

            XDocument xmlDoc = XDocument.Parse(dataInXmlFile);

            var query = from l in xmlDoc.Descendants("Category")
                        select new Notch
                        {
                            name = (string)l.Attribute("name").Value,
                            Titles = l.Element("Articles").Elements("article")
                                     .Select(s => s.Attribute("title").Value)
                                     .ToList(),

                            Images = l.Element("Articles").Elements("article")
                                     .Elements("thumb_image").Elements("image")
                                     .Select(x => x.Attribute("url").Value).ToList(),

                        };

                        foreach (var result in query)
                        {
                            Console.WriteLine(result.name);
                            foreach (var detail in result.Titles.Zip(result.Images, (st, si) => string.Format("{0} {1}", st, si)))
                            {
                                Console.WriteLine(detail);
                            }
                        }
                        NotchsList11.ItemsSource= query;

        }
        catch(Exception e)
        {
            MessageBox.Show("Binding Failed");
        }

    } 
    private void NotchsList11_SelectionChanged(object sender, SelectionChangedEventArgs e)
   {
      Notch selectedItemData = (sender as ListBox).SelectedValue as Notch;
      if(selectedItemData != null)
       {
     NavigationService.Navigate(new Uri(string.Format("/Test.xaml?parameter",selectedItemData.articleid), UriKind.Relative));
       }
    }

My DetailPage.xaml.cs

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
 {
     base.OnNavigatedTo(e);
     string parameter = this.NavigationContext.QueryString["parameter"];
  }

If i click any image,related title and fullcontent navigate to details page but fullcontent want to show webview on details page. so I tried this code but selectedItemData getting null value.i cant navigate to other page.So any one can help me to resolve in this problem?

解决方案

   private void NotchsList11_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

        var lb = sender as ListBox;
        if (lb == null) return;
        var articleSubItem = lb.SelectedItem as NotchSubItem;
        if (articleSubItem == null)  return;

        App.CurrentArticle = articleSubItem;
        NavigationService.Navigate(new Uri("/Test.xaml?selectedItem=" + articleSubItem.ArticleId, UriKind.Relative));
        NotchsList11.SelectedIndex = -1;
    }

To set details page

   protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        string selectedIndex = "";
        if (NavigationContext.QueryString.TryGetValue("selectedItem", out selectedIndex))
        {
            title.Text = App.CurrentArticle.Titles;

            webBrowser.NavigateToString(App.CurrentArticle.FullContent);

        }
        base.OnNavigatedTo(e);

    }

MainPage.xaml page

              <StackPanel Width="Auto">
                            <StackPanel VerticalAlignment="Top" Width="Auto">
                                <ListBox  ItemsSource="{Binding Articles}"   Margin="5,5,5,0" Width="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" SelectionChanged="NotchsList11_SelectionChanged">
                                    <ListBox.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <StackPanel Orientation="Horizontal"  VerticalAlignment="Top">
                                            </StackPanel>
                                        </ItemsPanelTemplate>
                                    </ListBox.ItemsPanel>
                                    <ListBox.ItemTemplate>
                                        <DataTemplate>
                                            <Border BorderBrush="#302c2d" Background="#302c2d" BorderThickness="5,5,5,0"   Name="image"  Margin="3,0,3,0">
                                                <Image Source="{Binding Image}"  Width="141" Height="95" Name="value"  Stretch="Fill" VerticalAlignment="Top"></Image>
                                            </Border>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>
                            </StackPanel>
                            <StackPanel Orientation="Horizontal" VerticalAlignment="Top"  Width="Auto">
                                <ListBox  x:Name="NotchsList11"  ItemsSource="{Binding Articles}"  Margin="5,0,5,0"   ScrollViewer.VerticalScrollBarVisibility="Disabled" SelectionChanged="NotchsList11_SelectionChanged">
                                    <ListBox.ItemsPanel>
                                        <ItemsPanelTemplate>
                                            <StackPanel Orientation="Horizontal">
                                            </StackPanel>
                                        </ItemsPanelTemplate>
                                    </ListBox.ItemsPanel>
                                    <ListBox.ItemTemplate>
                                        <DataTemplate >
                                            <Border BorderBrush="#302c2d" Background="#302c2d"  BorderThickness="5,5,5,0"  Margin="3,0,3,0">
                                                <TextBlock Text="{Binding Titles}"   Width="141" Height="90" Padding="3,0,0,30"  TextWrapping="Wrap"></TextBlock>
                                            </Border>
                                        </DataTemplate>
                                    </ListBox.ItemTemplate>
                                </ListBox>
                            </StackPanel>
                        </StackPanel>

MainPage.xaml.cs

XDocument xmlDoc = XDocument.Parse(dataInXmlFile);

            var query = from l in xmlDoc.Descendants("Category")
                        select new Notch
                        {
                            name = (string)l.Attribute("name").Value,
                            Titles = l.Element("Articles").Elements("article")
                                     .Select(s => s.Attribute("title").Value)
                                     .ToList(),


                            Articles = l.Element("Articles").Elements("article")
                                        .Select(article =>  new NotchSubItem
                                        {
                                        Image = article.Element("thumb_image").Element("image").Attribute("url").Value,
                                        ArticleId = article.Attribute("articleid").Value,
                                        FullContent = article.Element("FullContent").Value.ToString(),
                                        Titles = article.Attribute("title").Value,
                                        })
                                        .ToList(),

                            Images = l.Element("Articles").Elements("article").Elements("thumb_image").Elements("image")
                                     .Select(x => x.Attribute("url").Value).ToList(),

                        };

                        foreach (var result in query)
                        {
                            Console.WriteLine(result.name);
                            foreach (var detail in result.Titles.Zip(result.Images, (st, si) => string.Format("{0} {1}", st, si)))
                            {
                                Console.WriteLine(detail);

                            }

                        }
                        NotchsList11.ItemsSource = query;
        }
        catch(Exception e)
        {
            MessageBox.Show("Binding Failed");
        }

这篇关于如何设置从列表框到另一个页面的页面导航?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆