hallo
ich versuche mit nachstehender Überschreibung des OnColumnAdded-Ereignisses eine Spalte zur Laufzeit durch eine Hyperlinkspalte zu ersetzen:
protected override void OnColumnAdded(DataGridViewColumnEventArgs e)
{
// Wenn Spalte mit Bool(True) getagt ist, handelt es sich um eine Rekursion:
if ((e.Column.Tag != null) && ((bool)e.Column.Tag))
{
base.OnColumnAdded(e);
return;
}
// Hyperlinkspalte identifizieren, löschen und durch neuen Spaltentyp ersetzen
if ((_LinkColumns != null) && (_LinkColumns.Contains(e.Column.DataPropertyName)))
{
DataGridViewLinkColumn column = new DataGridViewLinkColumn();
column.DisplayIndex = e.Column.DisplayIndex;
column.Name = e.Column.Name;
column.DataPropertyName = e.Column.DataPropertyName;
column.ValueType = typeof(string);
column.Tag = true;
column.LinkColor = Color.Blue;
column.VisitedLinkColor = Color.Blue;
column.LinkBehavior = LinkBehavior.HoverUnderline;
column.UseColumnTextForLinkValue = true;
Columns.Remove(e.Column);
Columns.Add(column);
}
else // Basisverarbeitung
base.OnColumnAdded(e);
}
Die Spalte kommt an, das DataPropertyName ist auch gesetzt, aber die Spalte liefert IsDataBound=false und zeigt dementsprechend auch keine Daten an.
Weiss jemand warum?
thanx
ron
Haaalllloooo
wollte nochmal an die PoolPosition, weil wir zu dem Problem noch immer keine Lösung haben 🙁
Weiss hier keiner was?
Gruß
Ron