Заполните datagridview с датами, в которых количество зависит от ввода пользователя - PullRequest
0 голосов
/ 16 февраля 2019

Я новичок в программировании и знаю только основы.Я просто хотел знать, как мне этого добиться.Спасибо, у меня есть DatePicker, datagridview, textbox1 и tb_amount.Я хотел заполнить сетку данных датами, которые зависят от указателя даты, и счетчиком, который зависит от textbox1, а tb_amount будет разделено в зависимости от количества.Например:

date picker = 2-1-2019
textbox1    = 3
tb_amount   = 15

Вывод должен быть в dgv следующим образом:

Amount |  Date
-------------------
5      |  3-1-2019
5      |  4-1-2019
5      |  5-1-2019

1 Ответ

0 голосов
/ 16 февраля 2019

Идея получить то, что вы хотите сделать, заключается в следующем:

Вам необходимо создать коллекцию, в которой каждый элемент представляет строку, и назначить эту коллекцию в качестве источника данных для сетки данных.Какой тип коллекции и какой класс элементов выбрать, зависит от того, какое взаимодействие с сеткой вы разрешаете пользователю (добавлять / удалять строки, редактировать строки и т. Д.).См. Примечания на этой странице .

. Каждый столбец в вашем сетевом представлении показывает значение свойства Элементов в источнике данных.Чтобы определить, какое свойство отображает столбец, используйте свойство столбца DataPropertyName (см. DataPropertyName ).Если вы не определите ни одного столбца в своем представлении данных, будет создан столбец для каждого открытого свойства (заголовок столбца - это свойство Name).

Теперь в вашем конкретном случае у вас, вероятно, есть классобрабатывать ваши данные.И я ожидаю, что у вас есть одно свойство, содержащее дату и одно количество, поэтому что-то вроде этого:

public class MyClass
{
    public DateTime Date {get; set;}
    public int Amount {get; set;}
    // and some other properties
}

Ваше представление данных должно иметь два столбца:

  • столбец 1: HeaderText =«Моя сумма подписи» и DataPropertyName = «Amout»
  • столбец 2: HeaderText = «Моя дата подписи» и DataPropertyName = «Дата»

Теперь вы можете создать свою коллекцию следующим образом:

var myCollection = new List<MyClass>();
int numberOfRows = int.Parse(TextBox.Text);
for (int i = 0; i < numberOfRows; i++){
    var element = new MyClass() {
                      Date = datepicker.Value.AddDays(i),
                      Amount = tb_amount / numberOfRows
                  }
    myCollection.Add(element);
}
datagridview.datasource = myCollection;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...