Vorrei che determinate righe in Ultragrid fossero disabilitate a seconda della proprietà di sincronizzazione booleana nella riga. Ho pensato a due soluzioni diverse ma nessuna ha funzionato.Infragistics Ultragrid Come disabilitare una riga in base a una proprietà
1) Database della proprietà Sync alla proprietà Activation della riga. È possibile?
2) In un evento come l'evento InitializeRow della griglia, individuare la proprietà Sync e disabilitare la riga se è impostata su true. Questo metodo funziona a prescindere dall'aggiunta di altre righe alla griglia e la griglia viene quindi salvata, i dati vengono riordinati in modo che la riga disabilitata non contenga i dati corretti. Quindi ho bisogno di un modo per sapere quando questo accadrà in modo che possa passare e disabilitare di nuovo le righe giuste in seguito.
private void ultraGrid1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e)
{
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit;
if (e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value != null && (bool)e.Row.Cells[grdBoundGrip.DisplayLayout.Bands[0].Columns["Sync"]].Value)
e.Row.Activation = Infragistics.Win.UltraWinGrid.Activation.Disabled;
}
Potrebbe mostrare il codice nell'evento InitializeRow? – Steve
Ciao Steve, ho aggiunto il codice sopra il quale funziona perfettamente. Il problema è che dopo aver fatto clic su Salva, c'è un codice che aggiorna e modifica l'ordine dei dati e, sfortunatamente, questo non attiva di nuovo l'evento InitializeRow. – Jim
I documenti per [InitializeRow] (http://www.infragistics.com/help/topic/5CCF90C4-EEF6-4F4D-A979-B6F505F93318) spiegano che questo evento dovrebbe essere chiamato anche se si cambiano i valori di una singola cella. Quindi c'è qualcosa dopo il comando save che impedisce a questo evento di sparare. Di nuovo, il codice dopo il comando di salvataggio potrebbe essere d'aiuto. – Steve