LongListSelector - 值不在预期范围内

时间:2013-07-27 15:56:26

标签: windows-phone-7 windows-phone-8 longlistselector

我已将应用程序从wp7升级到8,现在正在获取System.ArgumentException“值不在预期范围内。”应用程序在退出为LongListSelector控件设置ItemsSource的方法后抛出异常。 StackMrace不能从ExceptionObject中获得,这在wp7中没有任何问题。

作为测试,我在应用程序的Loaded事件中完成了以下操作:

 private void PhoneApplicationPage_Loaded_1(object sender, RoutedEventArgs e)
        {
            List<string> test = new List<string>();
            test.Add("hi");
            BrowseListBox.ItemsSource = test;
        }

方法完成后,抛出异常。

这是我的LongListSelector的XAML。 TextBlock Text属性以前是Binding,但在我开始工作之前已被静态值替换。

<phone:LongListSelector Name="BrowseListBox" IsGroupingEnabled="True" LayoutMode="Grid">
                    <phone:LongListSelector.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0,0,0,17">
                                <TextBlock Text="test" TextWrapping="Wrap" FontSize="29" Tap="TextBlock_Tap_1" />
                            </StackPanel>
                        </DataTemplate>
                    </phone:LongListSelector.ItemTemplate>
                    <phone:LongListSelector.GroupHeaderTemplate>
                        <DataTemplate>
                            <Border>
                                <TextBlock Text="test" FontSize="32" Foreground="White"  />
                            </Border>
                        </DataTemplate>
                    </phone:LongListSelector.GroupHeaderTemplate>
                    <phone:LongListSelector.JumpListStyle>
                        <Style TargetType="phone:LongListSelector">
                            <Setter Property="ItemTemplate">
                                <Setter.Value>
                                    <DataTemplate>
                                        <Border Name="JumpListBorder" BorderThickness="0,0,0,1">
                                            <TextBlock Text="test" FontSize="50" Foreground="White"  />
                                        </Border>
                                    </DataTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </phone:LongListSelector.JumpListStyle>
                </phone:LongListSelector>

有没有人见过这个?

3 个答案:

答案 0 :(得分:8)

这是因为您使用的是LayoutMode 网格

您可以不使用网格,也可以指定GridCellSize属性,然后它可以工作:

<phone:LongListSelector Name="BrowseListBox" IsGroupingEnabled="True" LayoutMode="Grid" GridCellSize="50,50">

答案 1 :(得分:0)

我在尝试从线程(异步任务)通知属性更改时遇到了这些问题但是应用程序没有给我一个错误但是当返回到视图时我得到了您上面提到的错误。使用Dispatcher解决了我的问题。

Deployment.Current.Dispatcher.BeginInvoke(delegate
            {
               // Do work
            });

答案 2 :(得分:0)

对我来说,我有同样的问题,没有找到任何解决方案。我重新启动了我的视觉工作室,它就消失了。