Ich arbeite in C# mit Windows Form.Leere Spalten in DataGridView ausblenden
Ich habe einen Artikel DataGridView
namens objGridView, so benutzte:
public partial class dlgDetailsObj : Form
{
public dlgDetailsObj(myInterface item)
{
InitializeComponent();
objGridView.DataSource = new BindingList<dlgItem>();
var t = new Task(() =>
{
List<dlgItem> listElements = new List<dlgItem>();
if (item is List<Person>)
{
List<Person> list = (List<Person>)item;
foreach (Person person in list)
{
listElements.Add(new dlgItem()
{
Name = person.Name,
Forname = person.Forname
});
}
}
else if (item is List<Compagny>)
{
List<Compagny> list = (List<Compagny>)item;
foreach (Compagny compagny in list)
{
listElements.Add(new dlgItem()
{
Compagny = compagny.Name
});
}
}
else
{
return;
}
foreach (dlgItem item in listElements)
{
objGridView.Invoke((MethodInvoker)delegate
{
int sel = objGridView.GetSelectedRowIndex();
((BindingList<dlgItem>)objGridView.DataSource).Add(item);
objGridView.SetSelectedRowIndex(sel);
});
}
});
t.Start();
}
}
internal class dlgItem
{
public string Name { get; set; }
public String Forname { get; set; }
public String Compagny { get; set; }
}
Die Klasse dlgDetailsObj
verwendet wird, um eine Liste von Personen/Firmen anzuzeigen, und wahrscheinlich mehr Objekt später.
Meine DataGridView
hat eine DataSource von dlgItem
gefüllt. Eigentlich werden alle drei Felder angezeigt, auch wenn ich nur einen einzigen habe.
Wie kann ich meinen Code so definieren, dass Spalten nur dann angezeigt werden, wenn binded Felder nicht null sind?
Genau das, was ich gesucht habe! –