Как мне прикрепить идентификатор к ListViewItem? - PullRequest
0 голосов
/ 15 июля 2010

В моем последнем проекте у меня есть 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. Однако мне нужен этот идентификатор, когда я обрабатываю событие DoubleClick в ListView.

Мой текущий код 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. Есть идеи как это сделать?

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

Попробуйте

var data = List.SelectedItem as SongData;
if (data != null)
    ...
0 голосов
/ 15 июля 2010

В вашем обработчике двойного щелчка вы сможете получить ссылку на элемент, по которому дважды щелкнули мышью (или пробраться к нему) Это та же ссылка на SongData, к которой был привязан.

То, что это не было показано, не означает, что свойство больше не существует. Он должен быть там готов и доступен для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...