Unforgiv3n Ответов: 2

как добавить строки в WPF datagrids


привет, ребята, у меня возникли серьезные проблемы с неправильным поведением датагридов.

моя datagrid в виде следующих столбцов

Ид_задания, должность , фамилию следующем запуске , расписание

у меня есть следующие переменные

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);


а расписание-это строковое значение .

мне нужно добавить запись в datagrid с этими переменными в ней пожалуйста кто нибудь может мне помочь

- "многочисленные восклицательные знаки, - продолжал он, качая головой, - верный признак больного ума"." Терри Пратчетт[^] - OriginalGriff[/edit]

Anupama Roy

Эта сетка уже привязана к источнику данных, и вы хотите добавить к ней еще одну строку ?

Unforgiv3n

нет никакого источника данных, связанного с ним, нет никакой базы данных.

я просто хочу построить строки из переменных и отобразить их в datagrid

2 Ответов

Рейтинг:
12

Laurence1234

Привет,
При использовании учебника, найденного здесь
Я Программист
Я проработал этот пример и адаптировал его для ваших нужд.

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()
        {
            InitializeComponent();
            DataGridTextColumn col1 = new DataGridTextColumn();
            DataGridTextColumn col2 = new DataGridTextColumn();
            DataGridTextColumn col3 = new DataGridTextColumn();
            DataGridTextColumn col4 = new DataGridTextColumn();
            DataGridTextColumn col5 = new DataGridTextColumn();
            myDataGrid.Columns.Add(col1);
            myDataGrid.Columns.Add(col2);
            myDataGrid.Columns.Add(col3);
            myDataGrid.Columns.Add(col4);
            myDataGrid.Columns.Add(col5);
            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() });
        }
    }

Код, показанный выше, кажется довольно прямолинейным. XAML выглядит следующим образом:

<Window x:Class="DataGridTester.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>
        <DataGrid x:Name="myDataGrid"/>
    </Grid>
</Window>


Надеюсь, это поможет
Лоренс
(У меня было много проблем с публикацией этого ответа, приношу свои извинения, если он не отображается правильно)


Unforgiv3n

спасибо это сработало отлично

Laurence1234

Спасибо, никаких проблем :)
Если вам интересно, на веб-сайте, который я рекомендовал, есть хороший учебник по достижению некоторых из тех же результатов только в XAML, таких как привязки. Что, по-моему, более элегантно, чтобы отделить это от кода позади.

Member 10659186

Как раз то, что мне было нужно. Спасибо.

Рейтинг:
1

Sunasara Imdadhusen

Сначала вам нужно добавить в 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);
dt.Rows.Add(dr);


//BindGridViwe

Gridview1.DataSource = dt;
Gridview1.DataBind();


Спасибо,
Имдадхусен


Unforgiv3n

DATAGRID не содержит следующих данных

элемент управления DataGrid.источник данных ?

и функция newrow создает строку, но когда я делаю подсчет строк в таблице, она возвращает 0 ?