views:

890

answers:

1

Hello, I have a WPF datagrid and would like it's height to equal the sum of the heights of it's rows + header.

i.e. if my datagrid header is 100px and I have 4 rows, each 50px in height the total height of my datagrid should be 300px.

Is there a way of declaratively specifying that the height should match the sum of it's contents?

Thanks in advance!

+2  A: 

Hi Jason.

Could you please paste your code? Because what you are asking can be simply achieved by placing DataGrid into a panel, which will not constrain its size and arrange it exactly within desired size of a control.

In other words, you can place it inside StackPanel with vertical orientation, and that's it:

<Window x:Class="WpfApplication5.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:dg="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
        Title="Grid Sample"
        Height="300"
        Width="300">
  <StackPanel>
    <dg:DataGrid ItemsSource="{Binding}">
      <dg:DataGrid.Columns>
        <dg:DataGridTextColumn Header="No."
                               Width="SizeToCells"
                               Binding="{Binding CheckNumber}"
                               IsReadOnly="True" />
        <dg:DataGridTextColumn Header="Date"
                               Binding="{Binding Date, StringFormat=d}" />
        <dg:DataGridTextColumn Header="Pay To"
                               MinWidth="200"
                               Binding="{Binding Recipient}"
                               CanUserSort="False" />
      </dg:DataGrid.Columns>
    </dg:DataGrid>
  </StackPanel>
</Window>
Anvaka
That'll do it. Couldn't see the woods for the trees...Thanks!
Jason Irwin