簡體   English   中英

如何在WP8中將LongListSelector SelectedItem作為字符串獲取

[英]How can I get LongListSelector SelectedItem as a string in WP8

我有一個如下圖所示的longlistselector。 現在我想獲取用戶點擊的項目的文本。 我已經搜索了很多,但是沒有找到解決方案;(請注意圖片,請提供示例代碼

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

1)連接LongListSelector控件上的SelectionChanged事件:

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

2)從SelectionChangedEventArgs中的AddedItems集合中檢索選定的項目:

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

3)如果您的項目是一個對象,並且文本通過屬性顯示,那么您將可以通過對象上的屬性訪問文本:

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

如果您的列表綁定到字符串列表,那么它將只是添加項集合中的第一項:

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

您始終可以偵聽SelectionChanged事件並獲取字符串。 如果您使用DataTemplate在列表中設置樣式,則還有另一種方法。 在DataTemplate中聲明被Tapped事件,如下所示:

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

現在在我們的代碼中:

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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM