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 我希望這會對你有所幫助。 –