[英]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.