Как я могу прокручивать внешний список, когда мой курсор находится во вложенном списке?

#c# #wpf #mvvm

#c# #wpf #mvvm

Вопрос:

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

Я попытался установить CanContentScroll в false для списков в шаблоне, но это ничего не изменило.

 <DataTemplate x:Key="TestelementTemplate">
            <Expander Margin="0" Background="{StaticResource Green200Brush}"Padding="0">
                <Expander.HeaderTemplate>
                    ...
                </Expander.HeaderTemplate>
                <StackPanel>
                    <ListBox ItemsSource="{Binding ChildElements, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemTemplate="{DynamicResource ResourceKey=TestelementTemplate}" ScrollViewer.CanContentScroll="False" BorderThickness="0" Padding="0" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Visibility="{Binding HasTestelements}" />
                    <ListBox ItemsSource="{Binding ChildTasks, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" ItemTemplate="{StaticResource ResourceKey=TaskTemplate}" ScrollViewer.CanContentScroll="False" BorderThickness="0" Padding="0" HorizontalAlignment="Stretch" HorizontalContentAlignment="Stretch" Visibility="{Binding HasTasks}"/>
                    <Separator/>
                </StackPanel>
            </Expander>
        </DataTemplate>
  

Комментарии:

1. Вложенные списки кажутся таким уродливым способом обработки этого иерархического отображения данных — попробуйте вместо этого использовать элемент управления TreeView.

2. Если вы не хотите, чтобы они прокручивались, рассматривали ли вы itemscontrols вместо списков?

3. @Peregrine я полностью согласен, но элемент управления treeview в данном случае не подходит для моих нужд.

4. @Andy спасибо! работает идеально и выглядит лучше!