2
我FlipView这样Flipview不更新的SelectedItem
<FlipView Grid.Row="1" Grid.RowSpan="2" HorizontalContentAlignment="Center" x:Name="BookPageContentFlipView" ItemsSource="{Binding BookPagesNew,Mode=OneWay}"
SelectedItem="{Binding SelectedPage,Mode=TwoWay}"
SelectionChanged="BookPageContentFlipViewSelectionChanged" >
<FlipView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Background="Transparent" Orientation="Horizontal"
VirtualizationMode="Recycling" AreScrollSnapPointsRegular="True" />
</ItemsPanelTemplate>
</FlipView.ItemsPanel>
<FlipView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Center" Width="650" x:Name="GridWebView">
<WebView
common:HTMLStringExtension.HTML="{Binding HTMLString}"
ScriptNotify="OnBookPageContentWebViewScriptNotify"
Tapped="OnBookPageContentFlipViewTapped" />
<Image Source="ms-appx:///Assets/add-bookmark.png" x:Name="BookmarkImage"
Tapped="OnBookmarkImageTapped" HorizontalAlignment="Right" VerticalAlignment="Top"
Width="38"
Height="38" />
</Grid>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>
我使用MVVM和更新来自VM这个flipview的ItemsSource。现在我的问题是,当我从VM更新ItemsSource并使用NotifyPropertyChanged()
来通知View来更新flipview ItemsSource时,我选择的flipview不会用新数据更新视图。
但是当我移动了> 2项目(下一个/上一个)项目后,视图正确更新。我如何强制我的flipview更新当前选定的项目,而无需重新加载flipview?
。您的模型是否实现INotifyPropertyChanged?检查这个,如果你可以给样品项目。 –
我的模型是否也需要INotifyPropertyChanged?即使我已经在ViewModel中使用它了? – albilaga
是的,如果你想改变属性的值Item.HTMLString =“new value”; Item还必须实现INotifyPropertyChanged,否则视图不会得到任何通知。 了解更多关于绑定和INotifyPropertyChanged http://bit.ly/1O42Cb0。 你可以使用Fody库来实现这个接口,检查这个https://github.com/Fody/PropertyChanged 我希望这会对你有所帮助。 –