I'm trying to resize my column widths whenever the user resizes the window. When the window size changes, I determine the new column widths then apply it to the column and label width properties:
currColField.Settings.CellMinWidth = dWidthPerCol;currColField.Settings.CellMaxWidth = dWidthPerCol;currColField.Settings.CellWidth = dWidthPerCol;
currColField.Settings.LabelMaxWidth = dWidthPerCol;currColField.Settings.LabelMinWidth = dWidthPerCol;currColField.Settings.LabelWidth = dWidthPerCol;
Problem is, the settings don't take cause the columns to resize. Am I doing something wrong? Is there a better way to approach this?
ThanksDan
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo) { base.OnRenderSizeChanged(sizeInfo); double newCellWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].CellWidthResolved + 1; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMinWidth = newCellWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMaxWidth = newCellWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellWidth = newCellWidth; double newLabelWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].LabelWidthResolved + 1; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMaxWidth = newLabelWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMinWidth = newLabelWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelWidth = newLabelWidth; }
protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
{
base.OnRenderSizeChanged(sizeInfo); double newCellWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].CellWidthResolved + 1; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMinWidth = newCellWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMaxWidth = newCellWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellWidth = newCellWidth; double newLabelWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].LabelWidthResolved + 1; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMaxWidth = newLabelWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMinWidth = newLabelWidth; this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelWidth = newLabelWidth;
base.OnRenderSizeChanged(sizeInfo);
double newCellWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].CellWidthResolved + 1;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMinWidth = newCellWidth;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellMaxWidth = newCellWidth;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.CellWidth = newCellWidth;
double newLabelWidth = this.xamDataGrid1.DefaultFieldLayout.Fields[0].LabelWidthResolved + 1;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMaxWidth = newLabelWidth;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelMinWidth = newLabelWidth;
this.xamDataGrid1.DefaultFieldLayout.Fields[0].Settings.LabelWidth = newLabelWidth;
}
Joe,
I've attached the source to my app as a .zip file. The upload was limited to 200k, so I had to remove the obj and bin directories. You will have to rebuild before you can run it. I'm sure your references are in different locations, so you will have to update them accordingly for it to build/run. Please let me know what you find.
Thanks
Dan
Hello Vim,
I found this post duplicate to this one:
http://ko.infragistics.com/community/forums/p/82901/414148.aspx#414148
which is already discussed.
Hi Support Team,I have few columns in XamDataGrid which are able to resize.I 'm trying set minimum width for each column to prevent from minimizing the entire column.Thanks in advance!Vim
Attached is the grid test app.