Данные привязки не работают для моего просмотра данных.
Вот файл .cs
using FirebirdSql.Data.FirebirdClient;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Magacin
{
public partial class AnalizaPartneraGlobal : Form
{
List<Int_String> partneri = Komercijalno.Partner.Lista();
List<NeaktivniPartner> neaktivniPartneri = new List<NeaktivniPartner>();
public AnalizaPartneraGlobal()
{
InitializeComponent();
dataGridView1.AutoGenerateColumns = true;
}
private void button1_Click(object sender, EventArgs e)
{
foreach(Int_String partner in partneri)
{
double danaBezProdaje = (DateTime.Today - Komercijalno.Partner.PoslednjaKupovina(partner._int)).TotalDays;
if ( danaBezProdaje > 31)
{
NeaktivniPartner np = new NeaktivniPartner();
np.ppid = partner._int;
np.naziv = partner._string;
np.danaBezKupovine = danaBezProdaje;
neaktivniPartneri.Add(np);
}
}
dataGridView1.DataSource = M.List.ConvertToDataTable(neaktivniPartneri);
dataGridView1.Refresh();
}
}
public class NeaktivniPartner
{
public int ppid;
public string naziv;
public double danaBezKupovine;
}
}
Как видите, у меня есть только button
и dataGridView
Если я вспоминаю ранее, я делал dataGridView.dataSource = myGenericList;
, работал отлично, но по какой-то причине сейчас он не работает, поэтому я попытался преобразовать его в DataTable
, но все еще не работал. Затем я добавил AutogenerateColumns
и до сих пор не отображаются данные или столбцы. И после этого попытался добавить Refresh()
, но все равно ничего.
В отладчике показано, что в datagridview есть строки:

Помимо этого я попробовал:
- Удаление dagagview и сделать все снова
- Закройте VS и снова откройте его
- Пробовал делать это с
BindingList
- Попытка привязки списка к источнику данных напрямую
Код позади ConvertToDataTable
public static DataTable ConvertToDataTable<T>(IList<T> data)
{
PropertyDescriptorCollection properties =
TypeDescriptor.GetProperties(typeof(T));
DataTable table = new DataTable();
foreach (PropertyDescriptor prop in properties)
table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
foreach (T item in data)
{
DataRow row = table.NewRow();
foreach (PropertyDescriptor prop in properties)
row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
table.Rows.Add(row);
}
return table;
}