2010-05-13 150 views
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控件

回答

0

**编辑 - 抓抓我刚才的答复,因为你处理的单一列表您最好使用ListBox的项目,并让它自行处理内容。

+0

使用列表框而不是ListView似乎没有改变任何东西,除非你的意思是别的,然后将ListView标签改为ListBox标签。 – Josh 2010-05-14 03:24:37

+0

在ListView或TabItem上设置了可能覆盖某些属性的默认样式吗?否则,我会尝试的另一件事是确保您的每个控件的VerticalAlignment属性设置为拉伸,看看是否有帮助。 – 2010-05-14 14:00:45

+0

所以我试着用stretch来解决这个问题,但没有帮助。我可能需要将属性更改添加到列表A中,并将列集B添加到列表中,因为列表A永远不知道列表B是否发生更改。如果有多个项目,列表A也会正确滚动。滚动视图不能正常工作的唯一时间是列表B有更多项目,然后可以在视图区域中显示,并且列表A只有一个项目。 – Josh 2010-05-17 03:45:39