listVIew SelectionChanged和StorageFiles

时间:2017-03-23 15:26:01

标签: xaml uwp win-universal-app windows-10-universal

我有一个带有StorageFile元素的listView(因为每个元素代表.mp3文件)

<ListView x:Name="songList" HorizontalAlignment="Left"  Height="680" Background="{Binding }" ItemsSource="{Binding ListOfStorageFiles , Mode=TwoWay , UpdateSourceTrigger=PropertyChanged}"   Margin="986,120,0,-80" VerticalAlignment="Top" Width="294">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding DisplayName}"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

到目前为止,我使用folderPicker从用户获取特定文件夹,并将所有文件作为storageFiles列表绑定到listView。文件显示并且无法选择它们,但我必须在listView SelectionChanged上更改mediaElement Source。不幸的是,当我将SelectionChanged添加到listView时,编译器会告诉我 - Object reference not set to an instance of an object。有谁知道是什么导致这种行为?这也是从列表中播放媒体文件的正确方法(将storageFile绑定到列表)。

编辑:我可能必须使用Interaction.Behaviors for EventName =&#34; SelectionChanged&#34; ?

1 个答案:

答案 0 :(得分:1)

我最终得到了

<interactivity:Interaction.Behaviors>
            <core:EventTriggerBehavior EventName="SelectionChanged">
                <core:InvokeCommandAction Command="{Binding OnSelectedSongFromList }" CommandParameter="{Binding ElementName=songList, Mode=TwoWay}"></core:InvokeCommandAction>

                       </core:EventTriggerBehavior>
            </interactivity:Interaction.Behaviors>

然后在VM中我使用列表:

ListOfMedia.MoveTo((uint)asf.SelectedIndex);