我无法将翻页 View 转到在列表 View 中选择的项目,它始终转到列表中的第一个元素。

这是我的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);
                }
            }

我究竟做错了什么?我尝试用我的Index属性设置selectedIndex,但是这也行不通。

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

最佳答案

尝试将调用调度到RaisePropertyChanged

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

关于c# - Flipview MVVM绑定(bind)selecteditem或selectedIndex,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32729346/

10-13 04:02