我有一个FlipView,它有一个包含NotebookPageCanvas的DataTemplate。NotebookPageCanvas派生自Canvas并包含InkManager。我正在向此画布动态添加子元素,并且我发现这些子元素在FlipView的其他页面上重复。
例如,如果我从FlipView中的10个项开始,当我在索引0处动态地向画布添加一个矩形时,该矩形也会被添加到索引3处的画布中。在我的FlipView中有3个项时,一切都很正常,但是之后,我找不到一个模式来指定子控件的行为。这是我的FlipView XAML。
<FlipView
x:Name="flipView"
AutomationProperties.AutomationId="ItemsFlipView"
AutomationProperties.Name="Item Details"
TabIndex="1"
Grid.RowSpan="2"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}" SelectionChanged="flipView_SelectionChanged" >
<FlipView.ItemContainerStyle>
<Style TargetType="FlipViewItem">
<Setter Property="Margin" Value="0,137,0,0"/>
</Style>
</FlipView.ItemContainerStyle>
<FlipView.ItemTemplate>
<DataTemplate>
<local:NotebookPageCanvas x:Name="InkCanvas" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Canvas.Background>
<SolidColorBrush Color="{Binding BackgroundColor}" />
</Canvas.Background>
<TextBlock Foreground="BlueViolet" Canvas.Left="0" Canvas.Top="100" Text="{Binding Title}" />
</local:NotebookPageCanvas>
</DataTemplate>
</FlipView.ItemTemplate>
</FlipView>你知道我做错了什么吗?
发布于 2013-03-24 13:05:36
显然,当需要加载更多数据时,FlipView虚拟化正在回收现有项目。在画布与新的DataContext关联之前,您只需要擦除画布中的内容。一种方法可能是使用绑定来填充画布的子项,并始终在添加新内容之前擦除现有内容。
https://stackoverflow.com/questions/15582127
复制相似问题