[英]LongListSelector get selected data
我需要從longlistselector中獲取所選數據,但普通代碼無法正常工作
xaml:
<phone:LongListSelector x:Name="MainLongListSelector" DataContext="{Binding listData}" IsGroupingEnabled="False" Grid.ColumnSpan="2" Margin="0,0,10,10" SelectionChanged="list_SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding ImgUrl}" Height="70" Stretch="Fill" Margin="0,0,10,10"/>
<StackPanel>
<TextBlock Text="{Binding ImgText}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
C#:
ObservableCollection<LongListData> listData = new ObservableCollection<LongListData>();
listData.Add(new LongListData() { ImgText = "Imafsdfsge1", ImgUrl = new Uri("Assets/chart.png", UriKind.Relative) });
MainLongListSelector.ItemsSource = listData;
但在事件上:
private void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show(MainLongListSelector.SelectedItem.ToString());
}
信息框說:+ longlistdata
為什么?
列表工作完美。
目前,您呼叫的ToString()
是類型的選擇項目的方法LongListData
如果你想顯示ImgText
你需要做MainLongListSelector.SelectedItem.ImgText
或者您可以重寫ToString()
方法並實現自己的邏輯。
據我的猜測,您想在消息框中顯示與圖像相關的文本。 即“ Imafsdfsge1”
要嘗試一下
var item = (sender as LongListSelector).SelectedItem as LongListData;
MessageBox.Show(item.SelectedItem.ImgText.ToString()); // output "Imafsdfsge1"
您需要將selecteditem轉換為要綁定到的自定義對象,
private void list_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selecteditem = MainLongListSelector.SelectedItem as LongListData;
MessageBox.Show(selecteditem.ImgText.ToString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.