2016-07-26 3 views
0

現在、音楽プレーヤーアプリで作業していますが、再生トラックをアプリ内のすべてのListViewでハイライト表示し続けることに固執しています。DataTemplate内のListViewのSelectedItemをバインドします

たとえば、アルバムリストを含むページがあり、それぞれにlist of songsのDataTemplateが含まれています。あなたが最初にそれを選択し、選択されたアイテムがビューモデルにバインドされているときは、すべてがうまくいきます。しかし、そのページを離れてナビゲートすると、ビューモデルには、歌が再生されていることに関する情報が保持されます(but the binding doesn't cause the item to be highlighted)。

は、ここに私のXAMLです:

<ListView x:Name="lstSongs" 
    ItemsSource="{Binding attachments}" 
    SelectionChanged="lstSongs_SelectionChanged" 
    ScrollViewer.VerticalScrollMode="Disabled" 
    SelectedValue="{Binding DataContext.selectedSong, ElementName=Group_Page}" 
    SelectedItem="{Binding DataContext.selectedSong, ElementName=Group_Page}" 
    ItemContainerStyle="{StaticResource ListViewTextHighlight}" 
    Grid.Row="1"> 

のSelectedItemをバインドし、SelectedValueのは、どちらかがうまくいくかどうかを確認するだけでした。

私はおそらく何かが分かりませんが、それでも誰かが私を助けてくれることを願っています。

ありがとうございます!

+0

だと思いますか 私は質問を理解していないが、それはあなたを助けることができる一つのことかもしれない。 もう1つの質問 - データコンテキストにはどんなものがありますか?ページのデータコンテキストにバインドしていて、ビュー自体にデータフレームを持たない理由は何ですか? – MichaelThePotato

+0

@MichaelThePotato私は、要素に直接バインドする方法についてはわかりません。どういう意味ですか? 私がページのviewmodelにバインドする理由は、リストビューのデフォルトのviewmodelが親リストビューなので、現在の曲を取得できる関連フィールドを公開しません。 –

答えて

2

私は、ビューモデルに「のSelectedItem /バリュー」をバインドする理由はなぜ直接要素に結合せず、通常はありません?SelectedItem結合ニーズがMode=TwoWay

SelectedItem="{Binding DataContext.selectedSong, ElementName=Group_Page, Mode=TwoWay }" 
+0

私が追加する唯一のことは、起こっている唯一の問題ではありません。彼がSelectedItemをバインドしようとしているものが1.プロパティではなく、2.正しいデータ型のものでもない場合は、どちらも機能しません。 –

+0

Btwこれは偶然ではありませんか? http://www.stevewilkos.com/ –

+1

@AnthonyRussell LOLはSteve Wilkosであることを無罪にしています:) – SWilko

関連する問題