Laden...

DataGridViewCheckBoxColumn (für Spalte mit momentanem Typ int16) für gebundenenes DataGridView

Erstellt von kruprecht vor 11 Jahren Letzter Beitrag vor 11 Jahren 540 Views
kruprecht Themenstarter:in
11 Beiträge seit 2012
vor 11 Jahren
DataGridViewCheckBoxColumn (für Spalte mit momentanem Typ int16) für gebundenenes DataGridView

Nachdem ich nirgends im Forum ein gleich gelagertes Thema fand, traue ich mir mein Problem zu posten.
Ich habe ein gebundenes DataGridView

var getData = from t in ctx.TTASKs
select new { t.TAS_ACTIVE, t.TAS_CAPTION, t.TAS_PROCEDURE };

dataGridView2.DataSource = getData;

wobei die Spalte TAS_ACTIVE vom Typ int16 ist.
Die sollte nun aber zu einer DataGridViewCheckBoxColumn "mutieren" und auch Änderungen in der DB persistieren.

Leider kenne ich mich zu wenig aus. Habe auch schon probiert, die Spalte im Entity-Model als boolean zu definieren - ist leider nicht erlaubt, weil sie ja in der DB numeric ist.

Irgendjemand eine Lösung, Danke!

2.760 Beiträge seit 2006
vor 11 Jahren

Da fällt mir jetzt spontan nichts anderes ein als ein ViewModel-Objekt zu bauen welches dein eigentl. Objekt wrappt:


class TaskForDataGridView {
   public Task RealInstance {get; private set;};

   public TaskForDataGridView(Task realInstance) {
      RealInstance= realInstance;
   }

   public bool TAS_ACTIVE {
      get { return RealInstance.TAS_ACTIVE > 0 ? true : false; }
      set { RealInstance.TAS_ACTIVE = (value ? 1 : 0); }
   }
}

Dann machst du deine Datenbankabfrage und erstellst eine Liste aus TaskForDataGridView-objekten die du dann binden kannst.