Загрузить большой набор данных с WPF ContextMenu для RichTextBox

Я попал в ситуацию, когда количество элементов ContextMenu возросло до 3 тысяч. В этом случае ContextMenu требует много времени для загрузки самого себя. Я пытаюсь сделать виртуализацию пользовательского интерфейса, но безуспешно.

Пример кода выглядит следующим образом:

 <RichTextBox x:Name="FMWpfPopupControlHost" ScrollViewer.CanContentScroll="True" VirtualizingStackPanel.IsVirtualizing="True"  HorizontalAlignment="Left" Width="300" Height="600" Focusable="True" Loaded="onLoaded1">
        <RichTextBox.ContextMenu >
            <ContextMenu VirtualizingStackPanel.IsVirtualizing="True" ItemsSource="{Binding GetLabel, Source ={StaticResource model}}" ScrollViewer.CanContentScroll="True">
                <ContextMenu.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Initialized="TextBlock_Initialized" Text="{Binding getLabel}"/>
                    </DataTemplate>
                </ContextMenu.ItemTemplate>
                <ContextMenu.ItemsPanel>
                    <ItemsPanelTemplate>
                        <VirtualizingStackPanel IsItemsHost="True" IsVirtualizing="True" VirtualizationMode="Recycling"/>                        
                    </ItemsPanelTemplate>
                </ContextMenu.ItemsPanel>
                <ContextMenu.Template>
                    <ControlTemplate>
                        <Border BorderThickness="{TemplateBinding Border.BorderThickness}" Padding="{TemplateBinding Control.Padding}" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}" SnapsToDevicePixels="True">
                            <ScrollViewer Padding="{TemplateBinding Control.Padding}" Focusable="False">
                                <ItemsPresenter SnapsToDevicePixels="{TemplateBinding UIElement.SnapsToDevicePixels}" />
                            </ScrollViewer>
                        </Border>
                    </ControlTemplate>
                </ContextMenu.Template>
            </ContextMenu>
        </RichTextBox.ContextMenu>
    </RichTextBox>

Пожалуйста, сообщите мне, как я могу решить эту проблему?

Спасибо!

Суровая Гупта

0 ответов

Другие вопросы по тегам