Flipview MVVM绑定选中项或选中索引

本文关键字:索引 MVVM Flipview 绑定 | 更新日期: 2023-09-27 18:13:57

我无法让flipview转到已在listview中选中的项目,它总是转到列表中的第一个元素。

这是我的flipview xaml和我的页面加载代码:XAML:

<interactivity:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="Loaded">
            <core:InvokeCommandAction Command="{Binding PageLoaded}" />
        </core:EventTriggerBehavior>
    </interactivity:Interaction.Behaviors>
<FlipView  
            x:Name="FlipViewItem"
            ItemsSource="{Binding ArticlesLoader.ArticleItems}"
            VirtualizingStackPanel.VirtualizationMode="Recycling"
            SelectedItem="{Binding SelectedItem,Mode=TwoWay}"
            ItemTemplateSelector="{StaticResource MyDataTemplateSelector}" 
             >
            <FlipView.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal" VirtualizationMode="Recycling" />
                </ItemsPanelTemplate>
            </FlipView.ItemsPanel> 
         </FlipView>

加载的事件页调用方法:c#:

 private async Task LoadEverything()
            {
                if (ArticlesLoader!=null)
                {
                    Index = ArticlesLoader.SelectedIndex;
                    if (ArticlesLoader.ArticleItems.Any() 
                        && ArticlesLoader.ArticleItems.Count > Index )
                    {
                        SelectedItem = ArticlesLoader.ArticleItems[Index];
                        RaisePropertyChanged(() => SelectedItem);
                    }
                    RaisePropertyChanged(() => Index);
                }                
            }

我做错了什么?我试着用我的索引属性设置selectedIndex,但这也不工作。

编辑1:RaisePropertyChanged, OnPropertyChanged是同一件事=)我使用GalaSoft。MvvmLight

Flipview MVVM绑定选中项或选中索引

尝试将调用分派给RaisePropertyChanged

 Window.Current.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            RaisePropertyChanged(() => Index);
        });