LongListSelector — как привязать выбранный элемент к MVVM

#windows-phone-7 #mvvm-light #silverlight-toolkit #longlistselector

#windows-phone-7 #mvvm-light #silverlight-toolkit #longlistselector

Вопрос:

Мне удалось запустить LongListSelector через MVVM. Другими словами, ItemSource устанавливается через свойство в моей viewmodel.

Но по какой-то странной причине я, похоже, не могу «привязать» выбранный элемент к LongListSelector… Я не получаю ни Set, ни Get свойства ViewModel. Как это делается? И каким должен быть «тип» выбранного элемента в ViewModel? Я подумал о типе класса внутри группы?

Мой текущий xaml:

 <silverlighttoolkit:LongListSelector x:Name="AlbumsList"
                                        Background="Transparent"
                                        ItemTemplate="{StaticResource ItemTemplate}"
                                        GroupHeaderTemplate="{StaticResource GroupHeaderTemplate}"
                                        GroupItemTemplate="{StaticResource GroupItemTemplate}"
                                        ItemsSource="{Binding GroupedAlbums}"
                                        SelectedItem="{Binding SelectedAlbum, Mode=TwoWay}">
    <silverlighttoolkit:LongListSelector.GroupItemsPanel>
        <ItemsPanelTemplate>
            <silverlighttoolkit:WrapPanel />
        </ItemsPanelTemplate>
    </silverlighttoolkit:LongListSelector.GroupItemsPanel>
</silverlighttoolkit:LongListSelector>
  

Ответ №1:

Используйте SelectionChanged событие. Либо через поведение EventToCommand, либо через прикрепленное поведение.

Комментарии:

1. Как всегда, Клаус, вы, кажется, всегда знаете правильный ответ 😉

2. Смотрите обходной путь из wikstromjonas.