Codice:
private class TuaPagina
{
private TuaPagina()
{
btnGrid.Click =+ btnGrid_Click;
}
private void btnGrid_Click(object sender, EventArgs e)
{
//Inserisci data nella grid
btnGrid.Click =- btnGrid_Click;
}
}
Questa è una possibilità che ti evita di usare un boolean. Dopo aver inserito la data rimuovi l'handler del click.
Poi dipende se questo bottone ti serve anche per fare altro oppure no
Sicuramente se dopo il click non de-registri l'handler che inserisce l'ora, ogni volta che clicchi il bottone il codice verrà sempre eseguito.
Può essere anche meglio il suggerimento di msangi se stai creando un software con MVVM, in questo caso nel CanExecute dell'ICommand fai il check della data (è già inserita o no?)