0

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

4

2 回答 2

0

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

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

于 2010-07-15T14:06:48.450 回答
0

尝试

var data = List.SelectedItem as SongData;
if (data != null)
    ...
于 2010-07-15T14:08:08.637 回答