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にはそのレコードの主キーが含まれています。明らかに、この ID を ListView に表示したくありません。ただし、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 に答える