C# 如何将id附加到ListViewItem?
在我最近的项目中,我有一个C# 如何将id附加到ListViewItem?,c#,wpf,data-binding,listview,listviewitem,C#,Wpf,Data Binding,Listview,Listviewitem,在我最近的项目中,我有一个列表视图,它绑定到一个可观察集合。此ObservableCollection包含我的类的许多对象SongData: public class SongData { public int Id { get; set; } public string Title { get; set; } public string Artist { get; set; } } 这些对象由来自SQLite数据库的数据填充,属性Id包含该记录的主键。显然,我不想在我
列表视图
,它绑定到一个可观察集合
。此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上的双击事件时,我确实需要这个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(用于数据库)。有什么想法吗?在双击处理程序中,您应该能够获得对双击项目的引用(或者按自己的方式)。这与绑定到的SongData引用相同 只是因为它没有显示并不意味着该财产不再存在。它应该已经准备好,可以使用。试试看
var data = List.SelectedItem as SongData;
if (data != null)
...
这很有效,谢谢!奇怪的是我自己没有想到这一点:D