在我的最新项目中,我有ListView
绑定到ObservableCollection
。此ObservableCollection
包含班级SongData
的多个对象:
public class SongData
{
public int Id { get; set; }
public string Title { get; set; }
public string Artist { get; set; }
}
这些对象填充了从SQLite数据库派生的数据,属性Id
包含该记录的主键。显然,我不想在我的ListView中显示这个id。但是,当我在ListView上处理DoubleClick事件时,我确实需要此ID。
我目前的xaml代码是:
<ListView Margin="12,41,12,12" Name="lvwOverview" SelectionMode="Single" ItemsSource="{Binding SongCollection}" MouseDoubleClick="lvwOverview_MouseDoubleClick">
<ListView.View>
<GridView>
<GridViewColumn Width="200" Header="Title" DisplayMemberBinding="{Binding Title}"></GridViewColumn>
<GridViewColumn Width="200" Header="Artist" DisplayMemberBinding="{Binding Artist}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
现在,当用户双击ListViewItem时,我希望能够获取id(用于数据库)。关于如何做到的任何想法?
答案 0 :(得分:0)
在双击处理程序中,您应该能够获得对双击项目的引用(或按照您的方式工作)。这与绑定的SongData引用相同。
仅仅因为它没有显示并不意味着该财产不再存在。它应该准备就绪并可供使用。
答案 1 :(得分:0)
尝试
var data = List.SelectedItem as SongData;
if (data != null)
...