移除WPF DataGrid中的空白栏

von4xj4u  于 2022-11-18  发布在  其他
关注(0)|答案(3)|浏览(300)

我使用DataSet在WPF(C#)中填充DataGrid。结果是:

我想删除左侧的空白列,并将剩余空间共享给列。预期结果为:

我的XAML代码是:

<Window x:Class="RFID.CareerWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="CareerWindow" Height="356" Width="404">
    <Grid>

        <DataGrid x:Name="dg1" HorizontalAlignment="Left" Margin="25,10,0,0" VerticalAlignment="Top" Height="306" Width="355" EnableRowVirtualization="false" EnableColumnVirtualization="false" FontFamily="2  badr" FontSize="20" FlowDirection="RightToLeft" CanUserAddRows="False" CanUserReorderColumns="False"/>

    </Grid>
</Window>
b0zn9rqh

b0zn9rqh1#

避免设置静态的“高度”和“宽度”。
使用ColumnWidth="*"共享DataGridColumns之间的空间

<DataGrid x:Name="dg1" ColumnWidth="*"
          HorizontalAlignment="Left" VerticalAlignment="Top" Margin="25,10,0,0"
          EnableRowVirtualization="false" EnableColumnVirtualization="false" 
          FontFamily="2  badr" FontSize="20" FlowDirection="RightToLeft" 
          CanUserAddRows="False" CanUserReorderColumns="False" />
v8wbuo2f

v8wbuo2f2#

您可以使用以下命令设置Grid的最后一列或一列

<DataGridTextColumn Header="Surname"
                    Width="*"
                    Binding="{Binding Path=Surname,Mode=TwoWay}" IsReadOnly="True">
  <DataGridTextColumn.ElementStyle>
    <Style TargetType="TextBlock">
      <Setter Property="HorizontalAlignment" Value="Left" />
      <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
  </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
niknxzdl

niknxzdl3#

要消除自动添加的列,请将DataGridTextColumnWidth设置为*
以下代码表示一个具有两列且没有自动添加列的DataGrid

<DataGrid AutoGenerateColumns="False" HeadersVisibility="Column">
 <DataGrid.Columns>
  <DataGridTextColumn Width="*" Binding="{Binding asdf}" />
  <DataGridTextColumn Width="*" Binding="{Binding zuio}" />     
 </DataGrid.Columns>
</DataGrid>

相关问题