Occurs when a data object, inserted into the Grid is updated.

Namespace: Dapfor.Net.Ui
Assembly: Dapfor.Net (in Dapfor.Net.dll) Version: (


public event EventHandler<GridRowUpdateEventArgs> RowUpdated
Visual Basic
Public Event RowUpdated As EventHandler(Of GridRowUpdateEventArgs)
Visual C++
 event EventHandler<GridRowUpdateEventArgs^>^ RowUpdated {
	void add (EventHandler<GridRowUpdateEventArgs^>^ value);
	void remove (EventHandler<GridRowUpdateEventArgs^>^ value);
member RowUpdated : IEvent<EventHandler<GridRowUpdateEventArgs>,


Type: System..::..EventHandler<(Of <(<'GridRowUpdateEventArgs>)>)>


 Copy imageCopy
//Some data object
public class Product : INotifyPropertyChanged
    //Some fields
    private double price;
    private DateTime maturity;

    [DoubleFormat(Precision = 3, ShortForm = true, ShowZero = false)]
    public double Price
        get { return price; }
            if (price != value)
                price = value;
                //Notify about color changing
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Price"));

    public DateTime Maturity
        get { return maturity; }

    public event PropertyChangedEventHandler PropertyChanged;

//Using sample
public void InitializeGrid(Grid grid)
    //Initialize the grid
    grid.Headers.Add(new Header());
    grid.Headers[0].Add(new Column("Price"));
    grid.Headers[0].Add(new Column("Maturity"));

    Console.WriteLine("Current thread: {0}", Thread.CurrentThread.ManagedThreadId);

    grid.RowUpdated += delegate(object sender, GridRowUpdateEventArgs e)
        int threadId = Thread.CurrentThread.ManagedThreadId;
        Console.WriteLine("The data object has been updated. Row = {0}, Field = {1}, Value = {2}, Thread = {3}", e.Row.VisibleIndex, e.DataField.Id, e.DataField.Value, threadId);

    //Add data object to the grid. The object will be implicitly wrapped by the DataObjectAccessor class
    Product product = new Product();

    //The object will notify the grid through the INotifyPropertyChanged, and the grid will automatically 
    //invalidate, sort, filter and highlight the affected cells.
    product.Price = 12.34;

    //Notify the grid from the non-GUI thread
        int threadId = Thread.CurrentThread.ManagedThreadId;
        Console.WriteLine("Update data object from non-GUI thread (Thread = {0})", threadId);

        //If the call comes from the non-GUI thread, the grid will synchronize them without blocking the calling thread.
        product.Price = 25.66;

//Console output:
//Current thread: 7
//The data object has been updated. Row = 0, Field = Price, Value = 12,34, Thread = 7
//Update data object from non-GUI thread (Thread = 9)
//The data object has been updated. Row = 0, Field = Price, Value = 25,66, Thread = 7

Thread Safety

The event RowUpdated is raised only in the GUI thread even the data object had notified the Grid from other thread.

See Also