Search code examples
c#silverlighttelerikradgridview

How to set value of RadGridView's column programmatically


I have a RadGridView and as soon as the user clicks the Insert button I want to set value for my Date column for that newly generated row. How can I set its value to System.Date.Today?

Xaml for RadGridview:

<telerik:RadGridView VerticalAlignment="Top" 
                      Name="grdProductGrid"
                      AutoGenerateColumns="False"
                      RowEditEnded="OnRowEditEnded"
                      CellValidating="OnCellValidating"
                      BeginningEdit="OnBeginningEdit">
    <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn x:Name="ID" 
                                DataMemberBinding="{Binding ProductID}" 
                                Header="ID" />

        <telerik:GridViewDataColumn x:Name="Code" 
                                DataMemberBinding="{Binding Code}" 
                                Header="Code" />

        <telerik:GridViewDataColumn x:Name="Date" 
                                DataMemberBinding="{Binding Path=Date, Mode=OneWay, StringFormat='{}{0:dd/MM/yyyy}'}" 
                                Header="Effective from" />

    </telerik:RadGridView.Columns>
</telerik:RadGridView>

And the Insert click event Handler:

private void OnInsertClick(object sender, RoutedEventArgs e)
{
  this.grdProductGrid.BeginInsert();
}

Solution

  • In your AddingNewDataItem event where you are setting the e.NewObject equal to the new object type that your grid is bound too...set your Date property then.

    private void YourRadGridView_AddingNewDataItem(object sender, 
        Telerik.Windows.Controls.GridView.GridViewAddingNewEventArgs e)
    {
        YourObjectModel newItem = new YourObjectModel();
        newItem.Date = DateTime.Now;
        e.NewObject = newItem;
    }
    

    Hope this helps. :)