簡體   English   中英

LongListSelector獲取所選數據

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

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