ListView

时间:2017-11-22 11:32:12

标签: wpf listview scrollviewer

我有以下XAML,

<ItemsPanelTemplate x:Key="ChannelInfoTemplate">
    <WrapPanel  Orientation="Horizontal" Background="AliceBlue" />
</ItemsPanelTemplate>

<DockPanel Grid.Column="1" Grid.Row="2">
    <ListView ItemsSource="{Binding FilesList}" Name="FilesItemControl" Background="Transparent" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListView.View>
            <GridView AllowsColumnReorder="False">
                <GridViewColumn Header="Channels">
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <ListView  ItemsSource="{Binding Channels,UpdateSourceTrigger=PropertyChanged}" 
                                                            Name="ChannelsView" ItemsPanel="{DynamicResource ChannelsTemplate}" 
                                                            HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch"
                                                            Background="Transparent" BorderBrush="Transparent" BorderThickness="0" 
                                                            VerticalAlignment="Bottom" 
                                                            Tag="{Binding DataContext,RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}"/>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
</DockPanel>

在我的应用程序中,我观察到每当我选择没有通道的第一个文件时,ListView的宽度是根据通道编号设置的。这意味着宽度是根据ListView内的内容设置的。但是当我关闭第一个文件并打开第二个文件时,ListView的宽度不会改变。因此,如果新文件的频道数量超过第一个频道,那么它会显示我不想要的scollviewer。对此有什么解决方案吗?

0 个答案:

没有答案