Laden...

DataGridView - abgeleitetet Datenklasse wird nicht angezeigt

Erstellt von camelord vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.464 Views
camelord Themenstarter:in
256 Beiträge seit 2006
vor 9 Jahren
DataGridView - abgeleitetet Datenklasse wird nicht angezeigt

Hi,

ich habe eine Datenklasse, deren Ableitung eine Liste an Daten (Bytes) enthält.
Leider wird beim Zuordnen der Daten zur Datasource Property des DataGridView keine Daten angezeigt.
Ich versuche das ganze so:
Eine Instanz von ViewData_RawData wird erzeugt und das Raw Property mit Daten gefüllt.
Dann zeige ich die Daten an, indem ich showData meiner View_Table Klasse aufrufe.
Wenn die Form dann angezeigt wird, habe ich nur das leere DataGridView ohn Daten!

DATENKLASSEN:


public class ViewData_Table
{
         public object DataSource { get; set; }
}

public class ViewData_RawData : ViewData_Table
{
        public ViewData_RawData()
        {
            Raw = new List<Data>();
            DataSource = Raw;
        }
        public List<Data> Raw { get; set; }
        public class Data
        {
            public Byte Delta { get; set; }
            public Byte Reference { get; set; }
            public Byte Signal { get; set; }
        }
}

VIEWKLASSEN:


public class View_Table
{
        public bool showData(IViewData data)
        {
            //if data to show is not null
            if (data == null)
            {
                throw new ArgumentNullException("View_NotifyUser:showData() interface data is null");
            }
            ViewData_Table dataInterface = (ViewData_Table)data;

             TouchTable  currentTouchTable = new TouchTable(); //create custom DatagridView
             SuperView.Controls.Add(currentTouchTable); //Add control to Form
            }
             
            currentTouchTable.AddDataSource(dataInterface);

            return true;
        }
}

public partial class TouchTable : UserControl
    {
        public TouchTable()
        {
            InitializeComponent();
        }

        public void AddDataSource(ViewData_Table data)
        {
            touchDataGridView.DataSource = data.DataSource;
        }
}

5.658 Beiträge seit 2006
vor 9 Jahren

Hi camelord,

was passiert denn, denn du eine Liste mit deinen Objekten direkt an ein GridView bindest? Ansonsten sollte man hier die richtige Lösung finden können: Displaying Data in the Windows Forms DataGridView Control.

Christian

Weeks of programming can save you hours of planning

camelord Themenstarter:in
256 Beiträge seit 2006
vor 9 Jahren

Hi, dann wird alles richtig dargestellt. Das Problem liegt denke ich an der Ableitung..
Diese Technik brauche ich aber für meine Problemlösung..

49.485 Beiträge seit 2005
vor 9 Jahren

Hallo camelord,

auch wenn es nicht ganz das gleiche zu sein scheint, erinnert mich dein Problem an Binden einer Liste aus Interfaces an ein DataGridView mithilfe einer BindingList. Vielleicht hilft dir das zumindest ein Stück.

herbivore

camelord Themenstarter:in
256 Beiträge seit 2006
vor 9 Jahren

ich probiers mal aus, danke.

camelord Themenstarter:in
256 Beiträge seit 2006
vor 9 Jahren

ok so gehts - schade dass man das nicht mit Attributen oder so was lösen kann.

4.221 Beiträge seit 2005
vor 9 Jahren

@camelord

Schau nochmal im Link welchen herbivore verlinkt hat... Da gibt es ein Update.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

camelord Themenstarter:in
256 Beiträge seit 2006
vor 9 Jahren

OK verstanden - danke für den Update..
sowas in der Richtung dachte ich mir schon.

Danke dir