Работа ListBox с огромным числом элментов [WPF]
От: SanyaVB  
Дата: 12.07.16 15:19
Оценка:
При добавлении в ListBox большого числа элементов получаем тормоза, которые разрешаются с помощью атрибутов VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True"

Проблема состоит в том что если переопределить шаблон (Template) контрола, то эта оптимизация исчезает (см. ниже)
    <Style x:Key="ListBoxStyle"  TargetType="ListBox">
       <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate>
                   <StackPanel IsItemsHost="True" VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Почему??? Как включить виртуализацию в этом случае?
Re: Работа ListBox с огромным числом элментов [WPF]
От: Codechanger Россия  
Дата: 12.07.16 15:40
Оценка: +2
Здравствуйте, SanyaVB, Вы писали:

SVB>При добавлении в ListBox большого числа элементов получаем тормоза, которые разрешаются с помощью атрибутов VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True"


SVB>Проблема состоит в том что если переопределить шаблон (Template) контрола, то эта оптимизация исчезает (см. ниже)

SVB>
SVB>    <Style x:Key="ListBoxStyle"  TargetType="ListBox">
SVB>       <Setter Property="Template">
SVB>            <Setter.Value>
SVB>                <ControlTemplate>
SVB>                   <StackPanel IsItemsHost="True" VirtualizingStackPanel.IsVirtualizing="True" ScrollViewer.CanContentScroll="True"/>
SVB>                </ControlTemplate>
SVB>            </Setter.Value>
SVB>        </Setter>
SVB>    </Style>
SVB>

SVB>Почему??? Как включить виртуализацию в этом случае?
VirtualizingStackPanel, по идее
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.