2

我已将应用程序从 wp7 升级到 8,现在收到 System.ArgumentException “值不在预期范围内”。该应用程序在退出我为 LongListSelector 控件设置 ItemsSource 的方法后引发异常。StackTrace 不能从 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>

有没有人见过这个?

4

3 回答 3

8

这是因为您使用的是 LayoutMode Grid

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

<phone:LongListSelector Name="BrowseListBox" IsGroupingEnabled="True" LayoutMode="Grid" GridCellSize="50,50">
于 2013-07-28T21:50:03.503 回答
0

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

于 2015-02-16T07:10:16.457 回答
0

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

Deployment.Current.Dispatcher.BeginInvoke(delegate
            {
               // Do work
            });
于 2014-03-05T12:26:59.100 回答