2010-05-13 122 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