2014-11-04 4 views
1

내 WindowsPhone 앱에서 FlipView를 사용하는 데 문제가 있습니다. ItemsList에 바인딩하는 ItemsSource와 CurrentItem에 바인딩하는 SelectedItem이있는 FlipView가있는 페이지가 있습니다. FlipView의 DataTemplate에는 Html을 CurrentItem에 바인딩하는 속성 Html이 첨부 된 WebView가 포함됩니다. 모든 것이 잘되지만 응용 프로그램이 때때로 System.ArgumentException과 충돌하고 무엇이 잘못되었는지 전혀 알 수 없습니다.WindowPhone FlipView System.ArgumentException

XAML :

<Page 
x:Class="UkraineNews.ItemPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:common="using:News.Common" 
xmlns:viewModel="using:News.ViewModel" 
xmlns:converter="using:News.Converter"> 
<Page.DataContext> 
    <viewModel:PhoneGroupViewModel/> 
</Page.DataContext> 
<Page.Resources> 
    <converter:DateConverter x:Key="DateConverter" 
          IsShowFullDate="True"/> 
</Page.Resources> 
<Grid> 
    <FlipView ItemsSource="{Binding Group.Items}" 
       SelectedItem="{Binding Group.CurrentItem, Mode=TwoWay}"> 
     <FlipView.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto"/> 
         <RowDefinition Height="Auto"/> 
         <RowDefinition/> 
        </Grid.RowDefinitions> 
        <Border Grid.Row="0" 
          Background="{StaticResource ItemBorderBackground}" 
          HorizontalAlignment="Right" 
          Padding="5" 
          CornerRadius="0,0,0,5"> 
         <TextBlock Text="{Binding Published, Converter={StaticResource DateConverter}}"/> 
        </Border> 
        <TextBlock Grid.Row="1" 
           TextWrapping="Wrap" 
           Text="{Binding Title}" 
           FontWeight="Bold" 
           Margin="24,0" 
           FontSize="20" 
           Foreground="{StaticResource LeftMenuBackgroundBrush}"/> 
        <WebView Grid.Row="2" 
          NavigationStarting="WebView_NavigationStarting" 
          common:WebViewBehaviour.Html="{Binding Html}"/> 
       </Grid> 
      </DataTemplate> 
     </FlipView.ItemTemplate> 
    </FlipView> 
</Grid> 

C 번호 :

public class NewsItem 
    { 
    public string Title { get; set; } 
    public string Link { get; set; } 
    public DateTime Published { get; set; } 
    public string Html { get; set; } 
    public string Image { get; set; } 
    } 

오류 :

The parameter is incorrect. System.ArgumentException: Value does not fall within the expected range.

+0

나는 동일한 행동을 관찰하고 있습니다. 사용자가 컨트롤과 상호 작용하는 동안 항목이 추가되면 flipview의 버그라고 생각합니다. 슬프게도 버그를 재현하거나 찾아 낼 수 없었습니다. –

+0

FlipView의 기본 템플리트에서 문제가 2.5 포인트 여백에있는 것처럼 보입니다. 그러나이 문제와 관련하여 이것이 어떤지는 잘 모릅니다. 나는 그들을 제거하고 문제는 사라졌다. –

+0

솔루션을 확장 할 수 있습니까? –

답변

2

내가하는, 내 사용자 정의 하나 FlipView의 기본 templete입니다 대체했습니다 나는 2.5 점을 제거한다. 국경의 여백. 어떻게 작동하는지 모르지만 작동합니다. 가장자리에서 스 와이프했을 때 오류가 발생했기 때문에 마진 영역으로 들어가는 포인터와 연결되었을 수 있습니다.

<Style x:Key="FlipViewStyle" TargetType="FlipView"> 
    <Setter Property="Background" Value="Transparent"/> 
    <Setter Property="BorderThickness" Value="0"/> 
    <Setter Property="TabNavigation" Value="Once"/> 
    <Setter Property="IsTabStop" Value="False"/> 
    <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden"/> 
    <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden"/> 
    <Setter Property="ScrollViewer.IsHorizontalRailEnabled" Value="False"/> 
    <Setter Property="ScrollViewer.IsVerticalRailEnabled" Value="False"/> 
    <Setter Property="ScrollViewer.IsHorizontalScrollChainingEnabled" Value="True"/> 
    <Setter Property="ScrollViewer.IsVerticalScrollChainingEnabled" Value="True"/> 
    <Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="False"/> 
    <Setter Property="ScrollViewer.BringIntoViewOnFocusChange" Value="True"/> 
    <Setter Property="ItemsPanel"> 
     <Setter.Value> 
      <ItemsPanelTemplate> 
       <VirtualizingStackPanel AreScrollSnapPointsRegular="True" 
             Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </Setter.Value> 
    </Setter> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="FlipView"> 
       <Grid> 
        <Border BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}" 
          Background="{TemplateBinding Background}"> 
         <Grid> 
          <ScrollViewer x:Name="ScrollingHost" 
              AutomationProperties.AccessibilityView="Raw" 
              BringIntoViewOnFocusChange="{TemplateBinding ScrollViewer.BringIntoViewOnFocusChange}" 
              HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}" 
              HorizontalSnapPointsType="MandatorySingle" 
              HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}" 
              IsTabStop="False" 
              IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}" 
              IsHorizontalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsHorizontalScrollChainingEnabled}" 
              IsVerticalScrollChainingEnabled="{TemplateBinding ScrollViewer.IsVerticalScrollChainingEnabled}" 
              IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}" 
              IsDeferredScrollingEnabled="{TemplateBinding ScrollViewer.IsDeferredScrollingEnabled}" 
              Padding="{TemplateBinding Padding}" 
              TabNavigation="{TemplateBinding TabNavigation}" 
              VerticalSnapPointsType="MandatorySingle" 
              VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}" 
              VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}" 
              ZoomMode="Disabled"> 
           <ItemsPresenter/> 
          </ScrollViewer> 
         </Grid> 
        </Border> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style>