A diferencia del Ultragrid, el Ultratree no tiene una propiedad Header.VisiblePosition en sus columnas. Por ello, para cambiar el orden en que se despliegan las columnas tenemos que hacerlo a traves de su propiedad LayoutInfo de la siguiente forma:

primero nos enlazamos al evento ColumnSetGenerated

ultraTree1.ColumnSetGenerated+=new Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventHandler(ultraTree1_ColumnSetGenerated);

en el evento le indicamos el orden de las columnas por medio de su propiedad OriginX

void ultraTree1_ColumnSetGenerated(object sender, Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventArgs e)
{
e.ColumnSet.Columns["Descripcion"].LayoutInfo.OriginX = 0;
e.ColumnSet.Columns["Subtotal"].LayoutInfo.OriginX = 2;
e.ColumnSet.Columns["Año"].LayoutInfo.OriginX = 4;
}

Notese que indicamos el indice desde 0 y vamos aumentando de 2 en 2, esto se debe a que por default (y no se porque, no he encontrado sentido en ello) la propiedad SpanX tiene un valor de 2. Es decir, nuestras columnas por default se expandiran 2 celdas. Una solucion seria hacer lo siguiente, que seria equivalente al codigo anterior

void ultraTree1_ColumnSetGenerated(object sender, Infragistics.Win.UltraWinTree.ColumnSetGeneratedEventArgs e)

{

e.ColumnSet.Columns["Descripcion"].LayoutInfo.OriginX = 0;

e.ColumnSet.Columns["Subtotal"].LayoutInfo.OriginX = 1;

e.ColumnSet.Columns["Año"].LayoutInfo.OriginX = 2;

e.ColumnSet.Columns["Descripcion"].LayoutInfo.SpanX = 1;

e.ColumnSet.Columns["Subtotal"].LayoutInfo.SpanX = 1;

e.ColumnSet.Columns["Año"].LayoutInfo.SpanX = 1;

}

con ello las columnas deberian desplegarse en el orden que le hemos indicado.

Referencias: http://news.infragistics.com/forums/t/1007.aspx

Protegido: vmware key

Mayo 19, 2008

Esta entrada está protegida. Para verla, escribe la contraseña: