C# 读取列表框中项目的值

C# 读取列表框中项目的值,c#,listview,listbox,windows-store-apps,C#,Listview,Listbox,Windows Store Apps,我正在用C#开发一个小的windows应用商店应用程序,我使用下面的代码片段为列表框填充了值和内容 代码1:使用song类创建项目,将歌曲标题作为项目添加到列表框中 代码2:Song类,用于设置每个项目的值(“songItem”) 列表框中的填充内容当前正在运行 我想要的是在运行时获取单击事件中每个项目的“值” 为此,我如何读取(提取)列表框中所选项目的值(以C#为单位)?(值是songItem.Value的值) 代码3:我尝试过这个代码,试图找出一个解决方案,但没有成功 private vo

我正在用C#开发一个小的windows应用商店应用程序,我使用下面的代码片段为列表框填充了内容

代码1:使用song类创建项目,将歌曲标题作为项目添加到列表框中

代码2:Song类,用于设置每个项目的值(“songItem”)

列表框中的填充内容当前正在运行

我想要的是在运行时获取单击事件中每个项目的“值”

为此,我如何读取(提取)列表框中所选项目的值(以C#为单位)?(值是songItem.Value的值)

代码3:我尝试过这个代码,试图找出一个解决方案,但没有成功

 private void listbox1_tapped(object sender, TappedRoutedEventArgs e)
        {
           Int selectedItemValue = listbox1.SelectedItem.Value();
        }
因此,如果有人能帮助我,我会非常感激,因为我是个业余爱好者

试着这样做:

Song song=listbox1.SelectedItem as Song;
或者这个:

 var selected = listbox1.SelectedValue as Song;
试着这样做:

Song song=listbox1.SelectedItem as Song;
或者这个:

 var selected = listbox1.SelectedValue as Song;
我不确定“TappedRoutedEventArgs”,但我会的

private void listbox1_tapped(object sender, TappedRoutedEventArgs e)
        {
           var selectedSong = (Song)listbox1.SelectedItem;
           if (selectedSong != null) {
              var val = selectedSong.Value;
              }
        }
因为
SelectedItem
是一个
对象
(它不知道
属性),所以必须先将其转换为
歌曲

顺便说一句,
是一个
属性
,而不是一个
方法
,因此您不需要括号。

不确定“TappedRoutedEventArgs”,但我会这样做

private void listbox1_tapped(object sender, TappedRoutedEventArgs e)
        {
           var selectedSong = (Song)listbox1.SelectedItem;
           if (selectedSong != null) {
              var val = selectedSong.Value;
              }
        }
因为
SelectedItem
是一个
对象
(它不知道
属性),所以必须先将其转换为
歌曲


顺便说一下,
Value
是一个
属性,而不是一个
方法,因此不需要括号。

试试这样的方法:

if (listbox1.SelectedRows.Count>0){
      Song song=(Song)listbox1.SelectedItem;
  int value=song.Value;
}

试着这样做:

if (listbox1.SelectedRows.Count>0){
      Song song=(Song)listbox1.SelectedItem;
  int value=song.Value;
}

感谢您的响应,我通过将值转换为Int修改了您给定的代码,并获得了预期的结果。感谢您的响应,我通过将值转换为Int修改了您给定的代码,并获得了预期的结果。