Click here to Skip to main content
15,744,384 members
Please Sign up or sign in to vote.
5.00/5 (2 votes)
See more:
hi guys i am having serious problems with misbehaving of datagrids.

my datagrid as the following columns

JobID, Job title , last run, next run , schedule

i have variables as follows

int ID =int.Parse(reader[0].ToString());
               string title = reader[2].ToString();
               int jobint =int.Parse(reader[3].ToString());
               DateTime lastrun = DateTime.Now;
               DateTime nextrun = lastrun.AddSeconds(jobint);

and schedule is a string value .

i need to add a record to the datagrid with these variables in it please can someone assist me

[edit]Subject only: "'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind.'" Terry Pratchett[^] - OriginalGriff[/edit]
Updated 21-Nov-18 19:09pm
Anupama Roy 10-Feb-11 4:23am    
Is this Grid bound to a datasource already & do you want to add one more row to it ?
Unforgiv3n 10-Feb-11 4:30am    
there is no datasource bound to it there is no database.

i simply want to construct the rows from the variables and display it in the datagrid

Hi there,
While using a tutorial found here
I Programmer
I worked through the example and adapted it for your needs.
public partial class MainWindow : Window
        public struct MyData
            public int id { set; get; }
            public string title { set; get; }
            public int jobint { set; get; }
            public DateTime lastrun { set; get; }
            public DateTime nextrun { set; get; }
        public MainWindow()
            DataGridTextColumn col1 = new DataGridTextColumn();
            DataGridTextColumn col2 = new DataGridTextColumn();
            DataGridTextColumn col3 = new DataGridTextColumn();
            DataGridTextColumn col4 = new DataGridTextColumn();
            DataGridTextColumn col5 = new DataGridTextColumn();
            col1.Binding = new Binding("id");
            col2.Binding = new Binding("title");
            col3.Binding = new Binding("jobint");
            col4.Binding = new Binding("lastrun");
            col5.Binding = new Binding("nextrun");
            col1.Header = "ID";
            col2.Header = "title";
            col3.Header = "jobint";
            col4.Header = "lastrun";
            col5.Header = "nextrun";

            myDataGrid.Items.Add(new MyData { id = 1, title = "Test", jobint = 2, lastrun = new DateTime(), nextrun = new DateTime() });
            myDataGrid.Items.Add(new MyData { id = 12, title = "Test2", jobint = 24, lastrun = new DateTime(), nextrun = new DateTime() });

The code behind shown above seems to be fairly straight forward. The XAML is as follows:

<Window x:Class="DataGridTester.MainWindow"
        Title="MainWindow" Height="350" Width="525">
        <DataGrid x:Name="myDataGrid"/>

Hope this helps
(I've had a lot of problems posting this answer, apologies if it doesn't display correctly)
Share this answer
Unforgiv3n 10-Feb-11 8:23am    
thanks it worked perfectly
Laurence1234 10-Feb-11 8:48am    
Thanks, no problem :)
If you're interested the website I recommended has got a nice tutorial on achieving the some of the same results just in XAML, such as the bindings. Which I think is more elegant to split that out from the code behind.
Member 10659186 4-Mar-15 18:03pm    
Just what i needed. Thank you.
First you need to add in DataTable like
DataRow dr = dt.NewRow();

dr["ID"] =int.Parse(reader[0].ToString());
dr["title"] = reader[2].ToString();
dr["jobint"] =int.Parse(reader[3].ToString());
dr["lastrun"] = DateTime.Now;
dr["nextrun"] = lastrun.AddSeconds(jobint);


Gridview1.DataSource = dt;

Share this answer
Unforgiv3n 10-Feb-11 4:26am    
the DATAGRID does not contain the following

datagrid.datasource ?

and the newrow function creates the row but when i do i row count on the table it return 0 ?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900