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