HOW TO ADD DATA TO A WPF DATAGRID PROGRAMMATICALLY

jacob rasel

Total Post:88

Points:616
Posted by  jacob rasel
C# 
C#
 6335  View(s)
Ratings:
Rate this:

I need to add Data to DataGrid programmatically in WPF which is not databind.The DataGrid has 4 columns.

  1. Pravesh Singh

    Post:412

    Points:2888
    Re: How to add Data to a WPF datagrid programmatically

    Hi Jacob,


    In the following MainWindow.xaml I name the Grid MainGrid to access it in the code behind:

    <Window x:Class="WpfExperiments.MainWindow"

            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

            Title="MainWindow" Height="350" Width="525">

        <Grid Name="MainGrid"/>

    </Window>

    The DataItem class is not a WPF class, but a custom class created by Yourself:

    public class DataItem

    {

        public string Column1 { get; set; }

        public string Column2 { get; set; }

        public string Column3 { get; set; }

        public string Column4 { get; set; }

    }

    To let the DataGrid display data stored in DataItem objects programmatically, You may do the following:

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            // Your programmatically created DataGrid is attached to MainGrid here

            var dg = new DataGrid();

            this.MainGrid.Children.Add(dg);

            // create four columns here with same names as the DataItem's properties

            for (int i = 1; i <= 4; ++i)

            {

                var column = new DataGridTextColumn();

                column.Header = "Column" + i;

                column.Binding = new Binding("Column" + i);

                dg.Columns.Add(column);

            }

            // create and add two lines of fake data to be displayed, here

            dg.Items.Add(new DataItem { Column1 = "a.1", Column2 = "a.2", Column3 = "a.3", Column4 = "a.4" });

            dg.Items.Add(new DataItem { Column1 = "b.1", Column2 = "b.2", Column3 = "b.3", Column4 = "b.4" });

        }

    }

    I hope this helps.

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!