Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf ListView-滚动到特定项目_Wpf_Xaml_Windows 8.1 - Fatal编程技术网

Wpf ListView-滚动到特定项目

Wpf ListView-滚动到特定项目,wpf,xaml,windows-8.1,Wpf,Xaml,Windows 8.1,我有一个列表视图: <ListView ItemsSource="{Binding}" x:Name="LvLevels" Margin="10 60 0 0" SelectionChanged="LvLevels_SelectionChanged"> <ListView.ItemContainerStyle> <Style TargetType="

我有一个列表视图:

<ListView ItemsSource="{Binding}" x:Name="LvLevels" 
                  Margin="10 60 0 0" 
                  SelectionChanged="LvLevels_SelectionChanged">

        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
            </Style>
        </ListView.ItemContainerStyle>

        <ListView.ItemTemplate>
            <DataTemplate>
                <StackPanel>

                    <Border BorderBrush="White" BorderThickness="6">
                        <TextBlock Text="{Binding}" 
                                   FontSize="56" FontWeight="ExtraBold"
                                   Margin="10"
                                   HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                                   TextAlignment="Center">


                        </TextBlock>
                    </Border>

                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
但我无法将ListView滚动到此项目。这是我的密码:

LvLevels.ScrollIntoView(LvLevels.SelectedItem);
我创建了一个演示示例

下面是一个用于设置DataContext和设置选定项的示例:

        List<int> data = new List<int>();
        for (int i = 0; i <= 20; i++)
            data.Add(i);

        LvLevels.DataContext = data;

        LvLevels.SelectedItem = LvLevels.Items[14];
        LvLevels.ScrollIntoView(LvLevels.SelectedItem);
列表数据=新列表();

对于(int i=0;i我认为您的问题是由这条线引起的:

LvLevels.SelectedItem = CurrentLevel;
不要使用该行,而是使用类似于该行的内容来测试:

LvLevels.SelectedItem = LvLevels.Items[4];

关键是,您只能将
SelectedItem
设置为集合中绑定到
ListView.ItemsSource
属性的数据的实际项。完成此操作后,调用
LvLevels.ScrollIntoView
应该可以正常工作。

这对我没有帮助。我创建了一个小演示示例并更新了问题。很抱歉,我真的不想从完全陌生的人那里加载解决方案。相反,请尝试将
int
集合更改为自定义类类型。如果您从“代码隐藏”中选择一个项并调用
ScrollIntoView
,那么您将看到它确实工作了……我测试了它,以获得双重肯定。我不提供loa升级解决方案。您只能在浏览器上查看代码。无论如何,我会按照您的建议将代码重写为使用自定义类类型。抱歉,但它不起作用。我用“windows-8.1”标记了我的问题。您是否编写windows-8.1现代UI应用程序?如果编写,您可以共享您的工作解决方案吗?我也使用windows 8.1,但WPF,不是Windows应用商店应用程序。
LvLevels.SelectedItem = LvLevels.Items[4];