прокрутка списка переходит к началу - PullRequest
0 голосов
/ 07 июня 2011

Я использую список, и каждый элемент является пользовательским элементом управления.

Я могу прокрутить эмулятор и просмотреть все элементы.но если я оставлю кнопку мыши, список перейдет к началу.Так ведет себя эмулятор?или у меня ошибка?Я попытался использовать просмотрщик прокрутки, но это не помогло.

<Grid x:Name="LayoutRoot" Background="{StaticResource PhoneBackgroundBrush}">
    <ListBox Name="actionsListBox" VerticalAlignment="Top" ItemsSource="{Binding Path=Actions}" BorderThickness="1">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid>
                    <commonWPControls:MetadataView DataContext="{Binding}" ButtonClick="MetadataView_ButtonClick" />
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

, и пользовательский элемент управления выглядит так:

1 Ответ

1 голос
/ 07 июня 2011

Существует ряд проблем с использованием пользовательского контроля внутри ListBox. К ним относятся производительность и проблемы с виртуализацией элементов, которые могут означать, что элементы не отображаются или отображаются более одного раза. По этой причине использование пользовательских элементов управления внутри списка не рекомендуется.

Вероятно, проблема, с которой вы сталкиваетесь, связана с определением высоты фактического списка или высоты каждого элемента.
Если вы переместите содержимое пользовательского элемента управления непосредственно в шаблон элемента, это все еще происходит? Если это так, то это указывает на проблему со сложностью каждого элемента, влияющую на определение высоты элемента.
Если у вас просто очень простой шаблон элемента (т. Е. Просто текстовый блок), это все еще происходит? Если это так, это указывает на проблему с определением доступной высоты списка. Попробуйте установить высоту списка в явном виде, чтобы решить эту проблему.

У вас также есть очень сложное визуальное дерево с множеством вложенных сеток. Попробуйте удалить некоторые из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...