#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 спасибо! работает идеально и выглядит лучше!