猿问

从选定的 ListBoxItem 模板中获取 Textblock 值

有人知道如何从运行时生成的列表框项中提取文本块文本吗?


我有一个自定义的 ListBoxItem,其中包含一个 SymbolIcon 和一个 textBlock。我只需要 textBlock 值。


private void AlbumSongList_SelectionChanged(object sender, SelectionChangedEventArgs e)

    {

        var selected = AlbumSongList.SelectedItem as ListBoxItem;

        DataTemplate template = selected.ContentTemplate;



        Debug.WriteLine("You have selected the song: " + selected.ToString());

    }

这是包含文本块的自定义控件

同样,如果您看到具有 Sing 文本绑定源的“Textblock”,这就是我需要的文本值。


皈依舞
浏览 261回答 1
1回答

慕雪6442864

ListBox具有默认选择行为,该行为取决于项目源是什么(用于 的类型ItemsSource)。所以 theSelectedItem是你的Model类的类型,所以你可以TextBlock从你选择的模型中获取 的文本。例如,您的模型类 Name 是Model,那么您可以使用以下代码获取文本,private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e){    var selected = AlbumSongList.SelectedItem as Model;    Debug.WriteLine("You have selected the song: Song Number is {0}, and Song is {1}",        selected.SongNumber, selected.Song);}
随时随地看视频慕课网APP
我要回答