Установите свойство Height
или MaxHeight
внутреннего ListBox
, а также присоединенное свойство ScrollViewer.VerticalScrollBarVisibility
, для которого требуется отключить полосу прокрутки.В следующем примере виртуализация пользовательского интерфейса используется в обоих ListBoxes
:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var outer = Resources["outer"] as CollectionViewSource;
outer.Source = Enumerable.Range(1, 100);
var inner = Resources["inner"] as CollectionViewSource;
inner.Source = Enumerable.Range(1, 100);
}
}
XAML:
<Window x:Class="WpfApp1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp2"
mc:Ignorable="d"
Title="MainWindow" Height="300" Width="300">
<Window.Resources>
<CollectionViewSource x:Key="outer" />
<CollectionViewSource x:Key="inner" />
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Source={StaticResource outer}}">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Source={StaticResource inner}}"
MaxHeight="100" ScrollViewer.VerticalScrollBarVisibility="Disabled" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</Window>