none
rendre me texblock navigable RRS feed

  • Question

  • Salut, .. bon voila le code de la listebox

     

    <ListBox Height="503" HorizontalAlignment="Left" Margin="0,98,0,0" Name="listBox1" VerticalAlignment="Top" Width="450" >

                    <ListBox.ItemTemplate>

                        <DataTemplate>

                            <StackPanel Orientation="Horizontal" Height="132">

                                <StackPanel Width="370">

                                    <TextBlock Text="{Binding NAME}" Foreground="Black" FontSize="28" />

                                </StackPanel>

                            </StackPanel>

                        </DataTemplate>

                    </ListBox.ItemTemplate>

    </ListBox>

    mon problème est de rendre le texblock qui contient le NAME navigable vers une autre page selon le test que j'ai

    Merci 

     


    zipo
    vendredi 29 juillet 2011 08:39

Réponses

  • Dans ce cas suivant le texte tu affiche la bonne page :

     

    private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
     {
      TextBlock textBlock = sender as TextBlock;
      if (textBlock != null)
      {
    if(textBlock.Text == "premierePage")
    {
      //ensuite il suffit de naviguer vers ta page
    
    Uri u = new Uri("/MaPremièrePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
      }
    if(textBlock.Text == "deuxiemePage")
    {
      //ensuite il suffit de naviguer vers ta page
    
    Uri u = new Uri("/MaDeuxiemePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
      }
    else
    {
    Uri u = new Uri("/MaDernierePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
    }
     }
     }
    
    

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    • Marqué comme réponse Zied Nassr mardi 2 août 2011 11:19
    lundi 1 août 2011 18:18

Toutes les réponses

  • Bonjour voici un exemple :

    <ListBox Height="503" HorizontalAlignment="Left" Margin="0,98,0,0" Name="listBox1" VerticalAlignment="Top" Width="450" >
    
            <ListBox.ItemTemplate>
    
              <DataTemplate>
    
                <StackPanel Orientation="Horizontal" Height="132">
    
                  <StackPanel Width="370">
    
                    <TextBlock Text="{Binding NAME}" Foreground="Black" FontSize="28" MouseLeftButtonDown="TextBlock_MouseLeftButtonDown" />
    
                  </StackPanel>
    
                </StackPanel>
    
              </DataTemplate>
    
            </ListBox.ItemTemplate>
    
          </ListBox>
    

    public partial class MainPage : PhoneApplicationPage
      {
        // Constructor
        public MainPage()
        {
          InitializeComponent();
        }
    
        private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
          TextBlock textBlock = sender as TextBlock;
          if (textBlock != null)
          {
            //ensuite il suffit de naviguer vers ta page
            //et de passer en paramètre le contenu du textblock
          }
        }
      }
    

     

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue.
    vendredi 29 juillet 2011 09:10
  • Merci est ce que tu peux me donner un exemple de navigation qui peut tester le contenu du textblock ensuite passant en paramètre le contenu du textblock et naviguer vers une autre page?
    zipo
    vendredi 29 juillet 2011 10:01
  • <ListBox Height="503" HorizontalAlignment="Left" Margin="0,98,0,0" Name="listBox1" SelectionChanged="ListSelectionChanged" VerticalAlignment="Top" Width="450" >
    
        <ListBox.ItemTemplate>
    
         <DataTemplate>
    
          <StackPanel Orientation="Horizontal" Height="132">
    
           <StackPanel Width="370">
    
            <TextBlock Text="{Binding NAME}" Foreground="Black" FontSize="28" />
    
           </StackPanel>
    
          </StackPanel>
    
         </DataTemplate>
    
        </ListBox.ItemTemplate>
    
       </ListBox>
    
    public partial class MainPage : PhoneApplicationPage
     {
      // Constructor
      public MainPage()
      {
       InitializeComponent();
      }
    
      private void ListSelectionChanged(object sender, SelectionChangedEventArgs args)
    
      {
    
      if (args.AddedItems.Count==0)
       return;
    
    var selectedItem=args.AddedItems[0];
       {
        //ensuite il suffit de naviguer vers ta page
        //et de passer en paramètre le contenu du textblock
       }
    
    listBox1.SelectedItem=null;
      }
     }
     
    

    perso je prefere utiliser le selectionChanged de listbox

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue
    vendredi 29 juillet 2011 10:13
    Modérateur
  • est ce que quelqu'un pourras me citer un exemple de navigation par paramètre dans ce cas??(selon le contenu du texblock)
    zipo
    vendredi 29 juillet 2011 11:04
  • voila un exemple mais je t'ai déjà donner un exemple dans un autre post :
     private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
      {
       TextBlock textBlock = sender as TextBlock;
       if (textBlock != null)
       {
        //ensuite il suffit de naviguer vers ta page
        //et de passer en paramètre le contenu du textblock
    Uri u = new Uri("/TaPage.xaml?Libelle=" + textblock.text, UriKind.Relative);
        this.NavigationService.Navigate(u);
       }
      }
     }
    
    

    Et dans ta page qui dans mon cas est Nommer TaPage.xaml, tu met ceci dans le code c# :
     
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
      {
       base.OnNavigatedTo(e);
       if (NavigationContext.QueryString.ContainsKey("Libelle"))
       {
        String sLibelle = NavigationContext.QueryString["Libelle"];
        //Et après tu fait le traitement que tu as besoin
       }
      }
    
     
     

    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue.
    vendredi 29 juillet 2011 11:29
  • Bonjour,

    Est-ce que vous avez testé la solution proposée ? Merci de partager avec nous les résultats,afin que d'autres personnes avec le même problème puissent profiter de cette solution.


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    samedi 30 juillet 2011 11:53
  • Bonjour , j'ai testé les deux solutions mais il me génère un exception dans app.xaml.cs :

     private void RootFrame_NavigationFailed(object sender, NavigationFailedEventArgs e)

            {

                if (System.Diagnostics.Debugger.IsAttached)

                {

                    // A navigation has failed; break into the debugger

                    System.Diagnostics.Debugger.Break();

                }

            }


    zipo
    lundi 1 août 2011 09:35
  • Bonjour,

    Serait il possible de voir votre code C# au moment de la création de L'uri pour naviguer vers la nouvelle page ?


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    lundi 1 août 2011 09:44
  • j'ai appliqué ta solution, mais elle ne répond pas à mon besoin puisque je veux naviguer vers plusieurs pages sélectionés selon le nom du textblock et pas vers une seule page qui contient plusieurs informations et selon le libellé on va afficher les donnés

    Merci


    zipo
    lundi 1 août 2011 11:33
  • Dans ce cas suivant le texte tu affiche la bonne page :

     

    private void TextBlock_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
     {
      TextBlock textBlock = sender as TextBlock;
      if (textBlock != null)
      {
    if(textBlock.Text == "premierePage")
    {
      //ensuite il suffit de naviguer vers ta page
    
    Uri u = new Uri("/MaPremièrePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
      }
    if(textBlock.Text == "deuxiemePage")
    {
      //ensuite il suffit de naviguer vers ta page
    
    Uri u = new Uri("/MaDeuxiemePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
      }
    else
    {
    Uri u = new Uri("/MaDernierePage.xaml, UriKind.Relative);
      this.NavigationService.Navigate(u);
    }
     }
     }
    
    

     


    Cordialement, Pascal.

    Développeur Wpf/SilverLight/WinPhone7

    • Marqué comme réponse Zied Nassr mardi 2 août 2011 11:19
    lundi 1 août 2011 18:18