1
所以我目前有一个ListView“列表A”谁的项目,每个项目都有一个扩展控件,其中包含另一个ListView“列表B”。我遇到的问题是,有时候列表B会变得如此之大,以至于它超出了列表A的查看区域的范围。列表A的滚动条不会显示列表B的部分未显示的事实。有没有办法设置我的xaml,以便列表A的滚动条将检测到扩展器内部的列表长度比列表A的查看区域长。WPF - 列表视图滚动条问题
以下是我需要修改的代码部分:
<TabItem Header="Finished">
<TabItem.Resources>
<ResourceDictionary>
<DataTemplate x:Key="EpisodeItem">
<DockPanel Margin="30,3">
<TextBlock Text="{Binding Title}" DockPanel.Dock="Left" />
<WrapPanel Margin="10,0" DockPanel.Dock="Right">
<TextBlock Text="Finished at: " />
<TextBlock Text="{Binding TimeAdded}" />
</WrapPanel>
</DockPanel>
</DataTemplate>
<DataTemplate x:Key="AnimeItem">
<DockPanel Margin="5,10">
<Image Height="75" Width="Auto" Source="{Binding ImagePath}" DockPanel.Dock="Left" VerticalAlignment="Top"/>
<Expander Template="{StaticResource AnimeExpanderControlTemplate}" >
<Expander.Header>
<TextBlock FontWeight="Bold" Text="{Binding AnimeTitle}" />
</Expander.Header>
<ListView ItemsSource="{Binding Episodes}" ItemTemplate="{StaticResource EpisodeItem}" BorderThickness="0,0,0,0" />
</Expander>
</DockPanel>
</DataTemplate>
</ResourceDictionary>
</TabItem.Resources>
<ListView Name="finishedView" ItemsSource="{Binding UploadedAnime, diagnostics:PresentationTraceSources.TraceLevel=High}" ItemTemplate="{StaticResource AnimeItem}" />
</TabItem>
列表A是名称为“finishedView”的ListView和列表B是的ItemSource“情节” ListView控件
使用列表框而不是ListView似乎没有改变任何东西,除非你的意思是别的,然后将ListView标签改为ListBox标签。 – Josh 2010-05-14 03:24:37
在ListView或TabItem上设置了可能覆盖某些属性的默认样式吗?否则,我会尝试的另一件事是确保您的每个控件的VerticalAlignment属性设置为拉伸,看看是否有帮助。 – 2010-05-14 14:00:45
所以我试着用stretch来解决这个问题,但没有帮助。我可能需要将属性更改添加到列表A中,并将列集B添加到列表中,因为列表A永远不知道列表B是否发生更改。如果有多个项目,列表A也会正确滚动。滚动视图不能正常工作的唯一时间是列表B有更多项目,然后可以在视图区域中显示,并且列表A只有一个项目。 – Josh 2010-05-17 03:45:39