如何将ID附加到ListViewItem?

时间:2010-07-15 14:04:17

标签: c# wpf data-binding listview listviewitem

在我的最新项目中,我有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(用于数据库)。关于如何做到的任何想法?

2 个答案:

答案 0 :(得分:0)

在双击处理程序中,您应该能够获得对双击项目的引用(或按照您的方式工作)。这与绑定的SongData引用相同。

仅仅因为它没有显示并不意味着该财产不再存在。它应该准备就绪并可供使用。

答案 1 :(得分:0)

尝试

var data = List.SelectedItem as SongData;
if (data != null)
    ...