c# - net - Quitar el icono de Drilldown Plus(+) de MasterRow de XtraGrid GridView cuando ChildRow no tiene datos
gridcontrol devexpress tutorial (1)
Le sugiero que siga este hilo DevExpress - Cómo ocultar los botones de expandir / contraer deshabilitados para las filas maestras sin registros detallados
XtraGrid no proporciona una opción para ocultar botones de expansión de detalles maestros para detalles vacíos. Puede evitar esta limitación mediante el evento CustomDrawCell .
Aquí está el código necesario:
private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) {
GridView view = sender as GridView;
if(e.Column.VisibleIndex == 0 && view.IsMasterRowEmpty(e.RowHandle))
(e.Cell as GridCellInfo).CellButtonRect = Rectangle.Empty;
}
}
Espero que esto ayude..
Esto está relacionado con un GridView de DevExpess XtraGrid.
Necesito eliminar el drilldown plus icon (+)
de profundización drilldown plus icon (+)
de cualquier MasterRow en un GridView que no tenga datos para su ChildRow.
Actualmente, todas las filas (MasterRows) en mi GridView muestran el drilldown plus icon (+)
. Cuando se hace clic en el drilldown plus icon (+)
se visualiza el ChildRow con los datos apropiados. Pero, si el ChildRow no tiene datos, entonces el ChildRow no se muestra (expandido). Necesito hacer que el drilldown plus icon (+)
invisible para que el usuario no lo vea si no hay datos en el ChildRow.
Tengo una función que comprueba si hay datos disponibles para el ChildRow, lo que permite que el ChildRow se muestre (expanda) o no.
He usado GridView.OptionsView.ShowDetailButtons
pero eso oculta los drilldown plus icons (+)
en todas las filas. Eso no funciona para mí, ya que solo necesito ocultarlo si no hay datos para el ChildRow.
Aquí está el código que tengo hasta ahora:
private void gridView1_MasterRowGetRelationCount(object sender, MasterRowGetRelationCountEventArgs e)
{
e.RelationCount = 1;
}
private void gridView1_MasterRowEmpty(object sender, MasterRowEmptyEventArgs e)
{
e.IsEmpty = IsRelationEmpty(e.RowHandle, e.RelationIndex);
}
bool IsRelationEmpty(int rowHandleX, int relationIndex)
{
Tuple<string, double, double> row = (Tuple<string, double, double>)gridView1.GetRow(rowHandleX);
return rowHandleX == DevExpress.XtraGrid.GridControl.InvalidRowHandle || _tfs._dataDictionary[row.Item1.ToString()].Item2.Count == 0;
}
private void gridView1_MasterRowGetChildList(object sender, MasterRowGetChildListEventArgs e)
{
if (IsRelationEmpty(e.RowHandle, e.RelationIndex))
{
return;
}
Tuple<string, double, double> row = (Tuple<string, double, double>)gridView1.GetRow(e.RowHandle);
e.ChildList = _tfs._dataDictionary[row.Item1.ToString()].Item2.ToList(); // _tfs.DictionaryToList();
}
private void gridView1_MasterRowGetRelationName(object sender, MasterRowGetRelationNameEventArgs e)
{
e.RelationName = "Work Items with no Size Estimate:";
}
Cualquier dirección o sugerencia sería muy apreciada.
Gracias por adelantado,
Marwan (^_^)