更新列表视图的高度以填充新的表单内容(c#)

本文关键字:表单 填充 视图 列表 高度 更新 | 更新日期: 2023-09-27 18:13:18

我有一个表单的边界,其中包含一个列表视图,在我的c#代码中,边界的高度是根据一个值来改变的。现在的边界高度变化没有问题,但我如何更新列表视图有相同的高度作为边界?这是我的xml:

 <DataTemplate x:Key="PackageTemplate">
        <Border x:Name="PackageBorder" BorderBrush="Black" BorderThickness="2" Margin="10" Padding="0" Width="100" >
            <Border.Style>
                <Style>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Path=Status}" Value="1">
                            <Setter Property="Border.Background" Value="#FF999696"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Path=Status}" Value="0">
                            <Setter Property="Border.Background" Value="#FFE4E4E4"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Path=Layout}" Value="0">
                            <Setter Property="Border.Height" Value="100"/>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding Path=Layout}" Value="1">
                            <Setter Property="Border.Height" Value="200"/>
                        </DataTrigger>
                    </Style.Triggers>                           
                </Style>
            </Border.Style>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="70"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                </Grid.ColumnDefinitions>
                <ListView  Grid.Row="0" Grid.Column="0" Background="{x:Null}" x:Name="List" ItemsSource="{Binding Path=Collection}" ItemTemplate="{DynamicResource ChipTemplate}" 
                          ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderThickness="0" BorderBrush="{x:Null}" Foreground="Black" VerticalAlignment="Top" Width="90" >
                    <ListView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" />
                        </ItemsPanelTemplate>
                    </ListView.ItemsPanel>
                </ListView>
                <Label Grid.Row="1" Grid.Column="0" Content="{Binding Path=Location}" FontSize="15" FontFamily="Arial" Foreground="Black" Background="{x:Null}" VerticalAlignment="Bottom" HorizontalAlignment="Left"></Label>                  
            </Grid>
        </Border>            
    </DataTemplate>

更新列表视图的高度以填充新的表单内容(c#)

Xaml中,您通过设置<RowDefinition Height="70"/>和宽度为90将ListView高度设置为70,ListView将不会变得更大,您将需要设置<RowDefinition Height="70*"/>允许它在高度上增长并删除宽度="90",或者可能使用DockPanel

    <DockPanel>
        <Label DockPanel.Dock="Bottom" Content="{Binding Path=Location}" FontSize="15" FontFamily="Arial" Foreground="Black"  />
        <ListView x:Name="List" ItemsSource="{Binding Path=Collection}" ItemTemplate="{DynamicResource ChipTemplate}" 
                      ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled" BorderThickness="0" BorderBrush="{x:Null}" Foreground="Black" >
            <ListView.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Orientation="Horizontal" VerticalAlignment="Center" />
                </ItemsPanelTemplate>
            </ListView.ItemsPanel>
        </ListView>
    </DockPanel>