2011-01-07 67 views
16

alt text防止WPF 4.0從顯示空柱

Datagrid的我有1列數據網格的應用程序(現在)。如何從數據網格中刪除第二個空列,以便只有包含數據的列才顯示在數據網格中。

+1

可能你的意思是設置Width =「*」? – vorrtex 2011-01-07 16:57:49

+0

您是否希望列消耗所有可用的寬度,或者是否要隱藏「空列」? – 2011-01-07 19:49:56

+0

我想要列消耗所有可用的WIdth – 2011-01-08 03:16:55

回答

15

由於vorrtex在評論說,最好的辦法可能是設置列寬,以填補所有可用空間:

<DataGrid> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID" Width="*"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

根據不同的容器上使用,你也可以對齊網格向左側,空留空間給其右:

<DataGrid HorizontalAlignment="Left"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="FishLine ID"/> 
    </DataGrid.Columns> 
    ... 
</DataGrid> 

希望這是你在找什麼...

3

我認爲你需要設置AutoGenerateColumns爲False,做這樣的事情:

<DataGrid AutoGenerateColumns = "False" ItemsSource = "{Binding BindSource}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header = "FishLine ID" Binding = "{Binding ID}" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid> 

應該這樣做:P

1

如果一個列的寬度是「*」即使這樣,我已經看到了空在數據網格的右列。要解決這個問題,請將datagrid的Width指定爲「Width = 500」,而不是MinWidth和MaxWidth。

<DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="500" MinHeight="180" CanUserAddRows="False" CanUserDeleteRows="false" ItemsSource="{Binding MyList}" SelectedItem="{Binding SelectedValue}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Start Date" Binding="{Binding StartDate}" IsReadOnly="True" MinWidth="60" Width="Auto"/> 
     <DataGridTextColumn Header="End Date" Binding="{Binding EndDate}" IsReadOnly="True" MinWidth="60" Width="*"/> 
    </DataGrid.Columns> 
</DataGrid>