我目前正在研究一個音樂播放器應用程序,並且我被卡在應用程序中所有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只是爲了看看任何一個會工作。
我可能錯過了一些明顯的東西,但我希望有人能幫助我。
謝謝!
有通常沒有理由綁定「的SelectedItem /值」對視圖模型,爲什麼不綁定到直接的元素? 儘管我沒有放棄理解這個問題,但這可能是一件可以幫助你的事情。 另一個問題 - 數據上下文中究竟有什麼?任何原因你綁定到頁面的datacontext並沒有一個視圖本身? – MichaelThePotato
@MichaelThePotato我不太確定我是否直接綁定元素。你什麼意思? 至於爲什麼我綁定到頁面的viewmodel,listview的默認viewmodel是父級listview,所以它不公開相關的字段,我可以檢索當前的歌曲 –