Datagrid resizing issues

Answered (Verified) This post has 1 verified answer and 4 replies

Not Ranked
Posts: 3
dhomer Posted: Mon Nov 23, 2009 @ 5:43 AM
Hello, When using a Datagrid for Silverlight I expected to be able to leave the height and width blank to autoset the size, however this doesn't work. Also if I change the width of the datagrid from code behind it doesn't resize properly and just chops half of the content off!? I notice that all of the demo's are using fixed height datagrids, please can you clarify if this should work? Thanks, Dave

Answered (Verified) Verified Answer

Top 10 Contributor
Posts: 1,302
Answered (Verified) milos Posted: Mon Nov 23, 2009 @ 8:05 AM
Verified by milos

dhomer, what layout control are you placing the DataGrid into? It should definitely size appropriately in the context of a Grid, for instance. In a Canvas, you would need to set its size explicitly.

 

All Replies

Top 10 Contributor
Posts: 1,302
Answered (Verified) milos Posted: Mon Nov 23, 2009 @ 8:05 AM
Verified by milos

dhomer, what layout control are you placing the DataGrid into? It should definitely size appropriately in the context of a Grid, for instance. In a Canvas, you would need to set its size explicitly.

 

Not Ranked
Posts: 3
dhomer Posted: Mon Nov 23, 2009 @ 8:54 AM

Ah yes my fault (again) not paying attention - however I think I have a real issue now :-)

If the DataGrid does not have a Height and Width set it sizes correctly automatically. However if you have no height / width set and also have
RowDetailsVisibilityMode="Expandable"

With a RowDetailsTemplate set to another child grid (like your heirachy demos) you receive the following unhandled exception

"Value does not fall within the expected range."

 

 


Thanks,

Top 10 Contributor
Posts: 1,302
milos Posted: Mon Nov 23, 2009 @ 10:45 AM

I wasn't able to reproduce the problem by removing Height and Width from our Hierarchy sample. Can you provide more info on how to produce the error?

 

Not Ranked
Posts: 1
sulaman Posted: Wed Feb 24, 2010 @ 11:18 PM
hi Milos,
i got the same error "Value does not fall within the expected range". I am working on Normal 0 false false false EN-US X-NONE X-NONE MicrosoftInternetExplorer4 hierarchical grid and I wanted dto enable the horizontal scroll bar of the grid. As u said in "http://www.componentart.com/community/forums/p/60306/95741.aspx" thread that i have to set the ColumnResizingMode property to "Normal". when i do this (set to normal) i got the above error.

For more detail, i am sending u the xaml file code.

<UserControl x:Class="ComponentArtDataGridDemo.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:cartCommon="clr-namespace:ComponentArt.Silverlight.UI;assembly=ComponentArt.Silverlight.UI.Common"
xmlns:cart="clr-namespace:ComponentArt.Silverlight.UI.Data;assembly=ComponentArt.Silverlight.UI.Data"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">

<UserControl.Resources>
<cartCommon:Theme x:Key="DataGridHierarchy1Theme" BaseSource="/ComponentArt.Silverlight.UI.Data;component/Themes/generic.xaml" Source="/ComponentArtDataGridDemo;component/Assets/DataGrid/Hierarchy/DataGridHierarchy1Theme.xaml"/>
<cartCommon:Theme x:Key="DataGridHierarchy2Theme" BaseSource="/ComponentArt.Silverlight.UI.Data;component/Themes/generic.xaml" Source="/ComponentArtDataGridDemo;component/Assets/DataGrid/Hierarchy/DataGridHierarchy2Theme.xaml"/>
</UserControl.Resources>

<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition MinHeight="100"/>
</Grid.RowDefinitions>
<cart:DataGrid x:Name="EnvironmentDataGrid" Width="auto" Height="auto"
AllowColumnReordering="True"
AllowColumnResizing="True"
ColumnResizingMode="Normal"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"
VerticalScrollMode="Live"
PageSize="90210"
RunningMode="Client"
RowDetailsVisibilityMode="Expandable"
VerticalAlignment="Stretch"
HeaderVisibility="Collapsed"
ItemsSource="{Binding}"
FooterVisibility="Collapsed"
Background="#FFF3F3F3"
RowBackground="#FFF3F3F3"
BorderBrush="#FF000000"
CornerRadius="2"
Padding="0" >
<cart:DataGrid.Columns>
<cart:DataGridTextColumn Binding="{Binding EnvironmentID}" Header="Environment ID" Width="120"/>
<cart:DataGridTextColumn Binding="{Binding EnvironmentName}" Header="Environment Name" Width=".8*"/>
</cart:DataGrid.Columns>
<cart:DataGrid.CellStyle>
<Style TargetType="cart:DataGridCell">
<Setter Property="Padding" Value="15,3,3,3" />
<Setter Property="Background" Value="#FFF3F3F3" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFCCCCCC" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</cart:DataGrid.CellStyle>
<cart:DataGrid.ColumnHeaderStyle>
<Style TargetType="cart:DataGridColumnHeader">
<Setter Property="Padding" Value="20,0,0,0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Height" Value="30" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</cart:DataGrid.ColumnHeaderStyle>
<cart:DataGrid.RowDetailsTemplate>
<DataTemplate>
<cart:DataGrid x:Name="RunGroupDataGrid" Width="auto" Height="auto"
AllowColumnReordering="True"
AllowColumnResizing="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"

VerticalScrollMode="Live"
PageSize="90210"
RunningMode="Client"
Loaded="RunGroupDataGrid_Loaded"
RowDetailsVisibilityMode="Expandable"
VerticalAlignment="Stretch"
HeaderVisibility="Collapsed"
FooterVisibility="Collapsed"
Background="#FFF3F3F3"
RowBackground="#FFF3F3F3"
BorderBrush="#FF000000"
CornerRadius="2"
Padding="0">
<cart:DataGrid.Columns>
<cart:DataGridTextColumn Binding="{Binding RunGroupID}" Header="RunGroup ID" Width="105"/>
<cart:DataGridTextColumn Binding="{Binding RunGroupName}" Header="RunGroup Name" Width=".5*"/>
<cart:DataGridTextColumn Binding="{Binding Duration}" Header="Duration" Width=".3*"/>
</cart:DataGrid.Columns>
<cart:DataGrid.CellStyle>
<Style TargetType="cart:DataGridCell">
<Setter Property="Padding" Value="15,3,3,3" />
<Setter Property="Background" Value="#FFF3F3F3" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFCCCCCC" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</cart:DataGrid.CellStyle>
<cart:DataGrid.ColumnHeaderStyle>
<Style TargetType="cart:DataGridColumnHeader">
<Setter Property="Padding" Value="20,0,0,0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Height" Value="30" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</cart:DataGrid.ColumnHeaderStyle>
<cart:DataGrid.RowDetailsTemplate>
<DataTemplate>
<cart:DataGrid x:Name="RunDataGrid" Height="Auto" Width="Auto"
AllowColumnReordering="True"
AllowColumnResizing="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"

VerticalScrollMode="Live"
PageSize="90210"
RunningMode="Client"
Loaded="RunDataGrid_Loaded"
RowDetailsVisibilityMode="Expandable"
VerticalAlignment="Stretch"
HeaderVisibility="Collapsed"
FooterVisibility="Collapsed"
Background="#FFF3F3F3"
RowBackground="#FFF3F3F3"
BorderBrush="#FF000000"
CornerRadius="2"
Padding="0">
<cart:DataGrid.Columns>
<cart:DataGridTextColumn Binding="{Binding RunID}" Header="Run ID" Width="75"/>
<cart:DataGridTextColumn Binding="{Binding RunName}" Header="Run Name" Width=".2*"/>
<cart:DataGridTextColumn Binding="{Binding RunIdentifier}" Header="Run Identifier" Width=".3*"/>
<cart:DataGridTextColumn Binding="{Binding WebServer}" Header="WebServer" Width=".15*"/>
<cart:DataGridTextColumn Binding="{Binding StartDateTime}" Header="Start DateTime" Width=".15*" FormatString="yyyy/MM/dd"/>
<cart:DataGridTextColumn Binding="{Binding EndDateTime}" Header="End DateTime" Width=".15*" FormatString="yyyy/MM/dd"/>
</cart:DataGrid.Columns>
<cart:DataGrid.CellStyle>
<Style TargetType="cart:DataGridCell">
<Setter Property="Padding" Value="15,3,3,3" />
<Setter Property="Background" Value="#FFF3F3F3" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFCCCCCC" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</cart:DataGrid.CellStyle>
<cart:DataGrid.ColumnHeaderStyle>
<Style TargetType="cart:DataGridColumnHeader">
<Setter Property="Padding" Value="20,0,0,0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Height" Value="30" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</cart:DataGrid.ColumnHeaderStyle>
<cart:DataGrid.RowDetailsTemplate>
<DataTemplate>
<cart:DataGrid x:Name="AttemptDataGrid" Width="auto" Height="auto"
AllowColumnReordering="True"
AllowColumnResizing="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"

VerticalScrollMode="Live"
PageSize="90210"
RunningMode="Client"
Loaded="AttemptDataGrid_Loaded"
RowDetailsVisibilityMode="Expandable"
VerticalAlignment="Stretch"
HeaderVisibility="Collapsed"
FooterVisibility="Collapsed"
Background="#FFF3F3F3"
RowBackground="#FFF3F3F3"
BorderBrush="#FF000000"
CornerRadius="2"
Padding="0">
<cart:DataGrid.Columns>
<cart:DataGridTextColumn Binding="{Binding RequestID}" Header="Request ID" Width="95"/>
<cart:DataGridTextColumn Binding="{Binding AttemptNumber}" Header="Attempt Number" Width=".15*"/>
<cart:DataGridTextColumn Binding="{Binding StartDateTime}" Header="Start DateTime" Width=".2*" FormatString="yyyy/MM/dd"/>
<cart:DataGridTextColumn Binding="{Binding EndDateTime}" Header="End DateTime" FormatString="yyyy/MM/dd" Width=".2*"/>
<cart:DataGridTextColumn Binding="{Binding Duration}" Header="Duration" Width=".2*"/>
<cart:DataGridTextColumn Binding="{Binding ServerDuration}" Header="Server Duration" Width=".2*" />
</cart:DataGrid.Columns>

<cart:DataGrid.CellStyle>
<Style TargetType="cart:DataGridCell">
<Setter Property="Padding" Value="15,3,3,3" />
<Setter Property="Background" Value="#FFF3F3F3" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFCCCCCC" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</cart:DataGrid.CellStyle>
<cart:DataGrid.ColumnHeaderStyle>
<Style TargetType="cart:DataGridColumnHeader">
<Setter Property="Padding" Value="20,0,0,0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Height" Value="30" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</cart:DataGrid.ColumnHeaderStyle>
<cart:DataGrid.RowDetailsTemplate>
<DataTemplate>
<cart:DataGrid x:Name="RequestDataGrid" Width="auto" Height="auto"
AllowColumnReordering="True"
AllowColumnResizing="True"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto"

VerticalScrollMode="Live"
PageSize="90210"
RunningMode="Client"
Loaded="RequestDataGrid_Loaded"
RowDetailsVisibilityMode="Expandable"
VerticalAlignment="Stretch"
HeaderVisibility="Collapsed"
FooterVisibility="Collapsed"
Background="#FFF3F3F3"
RowBackground="#FFF3F3F3"
BorderBrush="#FF000000"
CornerRadius="2"
Padding="0">
<cart:DataGrid.Columns>
<cart:DataGridTextColumn Binding="{Binding RequestID}" Header="Request ID" Width="95"/>
<cart:DataGridTextColumn Binding="{Binding UniverseID}" Header="Universe ID" Width=".1*"/>
<cart:DataGridTextColumn Binding="{Binding TemplateID}" Header="Template ID" Width=".1*" />
<cart:DataGridTextColumn Binding="{Binding RequestName}" Header="Request Name" Width=".5*"/>
<cart:DataGridTextColumn Binding="{Binding OriginalRequestID}" Header="Original Request ID" Width=".2*"/>
</cart:DataGrid.Columns>

<cart:DataGrid.CellStyle>
<Style TargetType="cart:DataGridCell">
<Setter Property="Padding" Value="15,3,3,3" />
<Setter Property="Background" Value="#FFF3F3F3" />
<Setter Property="BorderThickness" Value="1,0,1,0" />
<Setter Property="BorderBrush">
<Setter.Value>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Color="#FFFFFFFF" Offset="0"/>
<GradientStop Color="#FFCCCCCC" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
</cart:DataGrid.CellStyle>
<cart:DataGrid.ColumnHeaderStyle>
<Style TargetType="cart:DataGridColumnHeader">
<Setter Property="Padding" Value="20,0,0,0" />
<Setter Property="FontSize" Value="12" />
<Setter Property="Height" Value="30" />
<Setter Property="VerticalAlignment" Value="Center" />
</Style>
</cart:DataGrid.ColumnHeaderStyle>
</cart:DataGrid>
</DataTemplate>
</cart:DataGrid.RowDetailsTemplate>
</cart:DataGrid>
</DataTemplate>
</cart:DataGrid.RowDetailsTemplate>
</cart:DataGrid>
</DataTemplate>
</cart:DataGrid.RowDetailsTemplate>
</cart:DataGrid>
</DataTemplate>
</cart:DataGrid.RowDetailsTemplate>
</cart:DataGrid>
</Grid>
</UserControl>

please tell me what am i doing wrong? i get this error when binding the first grid itemsource (as shown below)

public void oClient_GetEnvironmentDataCompleted(object sender, ServiceReference.GetEnvironmentTableDataCompletedEventArgs e)
{
EnvironmentDataGrid.ItemsSource = e.Result;
//EnvironmentDataGrid.Columns[0].Width = System.Windows.GridLength.Auto;

}


Regards

Page 1 of 1 (5 items)