如何在 WP8 中将 LongListSelector SelectedItem 作为字符串获取
-
20-12-2019 - |
题
我有一个长列表选择器,如下图所示。现在我想获取用户点击的项目的文本。我已经搜索了很多,但是找不到解决方案;(请注意图像请提供示例代码
http://amiryari.persiangig.com/image/stackoverflow-question.jpg
解决方案
1)在LongListelector控制器上介绍选择的选择活动:
<phone:LongListSelector ItemsSource="{Binding MyListItems}"
SelectionChanged="LongListSelector_SelectionChanged">
.
2)从SeptoothChangedEventargs中的添加到图中的集合中检索所选项目:
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);
.
如果您的列表绑定到字符串列表,那么它将简单地是AddrafteMs集合中的第一个项目:
string fullName = e.AddedItems[0].ToString();
MessageBox.Show(fullName);
. 其他提示
您可以随时收听 SelectionChanged
事件并获取字符串。如果您使用 DataTemplate 来设置列表中项目的样式,还有另一种方法。宣布 Tapped
DataTemplate 中的事件如下所示:
<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);
}
不隶属于 StackOverflow