Question

J'ai un sélecteur de liste longue comme l'image ci-dessous.maintenant, je veux obtenir le texte de l'élément sur lequel l'utilisateur a tapé.J'ai beaucoup recherché mais aucune solution trouvée; (Faites attention à l'image s'il vous plaît pour donner un exemple de code

http://amiryari.persiangig.com/image/stackoverflow-question.jpg

Était-ce utile?

La solution

1) filez l'événement de sélection de sélection sur la commande LongluSelector:

<phone:LongListSelector ItemsSource="{Binding MyListItems}"
                        SelectionChanged="LongListSelector_SelectionChanged">

2) Récupérez l'élément sélectionné de la collection ADJTMITEMS dans la sélectionCHANGEDEventtargs:

private void LongListSelector_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
     if (e.AddedItems.Count > 0)
     {
         var item = e.AddedItems[0];
     }
}

3) Si votre élément est un objet, et que le texte est affiché via une propriété, vous aurez accès au texte via la propriété sur votre objet:

MyListItemObject item = e.AddedItems[0] as MyListItemObject;
MessageBox.Show(item.FullName);

Si votre liste est liée à une liste de chaînes, il s'agirait simplement du premier élément de la collection ajoutée:

string fullName = e.AddedItems[0].ToString();
MessageBox.Show(fullName);

Autres conseils

Vous pouvez toujours écouter le SelectionChanged événement et obtenir la chaîne.Il existe un autre moyen si vous utilisez un DataTemplate pour styliser vos éléments dans la liste.Déclarer Tapped événement dans DataTemplate comme ceci :

<DataTemplate>
    <StackPanel Orientation="Horizontal">
        <Image Source="{Binding ContactImage}"/>
        <TextBlock x:Name="NameTextBlock" Text="{Binding ContactName}" Tapped="NameTextBlock_Tapped"/>
    </StackPanel>
</DataTemplate/>

Maintenant dans notre code :

private void LongListSelector_SelectionChanged(object sender, BlahBlah e)
{
     var tb = sender as Textblock;
     string cName = tb.Text; //This is the string you wanted.
     MessageBox.Show(cName);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top