2017-05-14 6 views
-1

Ist es möglich, eine Abfrage an ein Data Grid ohne Angabe der Tabelle oder Spalten zu binden?Binding dynamische Abfrage zu DataGrid C# WPF

Lassen Sie uns sagen, ich habe diese Anfrage:

string query = "select PersonName from Persons' 

aber es ändert sich und das nächste Mal habe ich:

string query = "select Email from Persons' 

I SQLite Net Erweiterung bin mit, und ich habe Probleme Bindung ohne Tabelle Angabe Objekt explizit, zum Beispiel:

Antwort

0

Ja, Sie können jede Tabelle oder Spalten an Daten binden Gitter dynamisch. zuerst in XAML-Code überprüfen Sie Ihre Spalten:

<DataGrid x:Name="dataGrid" > 
    <DataGrid.Columns> 
      <DataGridTextColumn Header="col1" Binding="{Binding col1}"> 
      <DataGridTextColumn Header="col2" Binding="{Binding col2}"> 
    </DataGrid.Columns> 
</DataGrid> 

nach XAML Code, den Sie in Code hinter binden Daten

 private void FillDataGrid() 
    { 
     var query = Context.Database.SqlQuery<Table>("Select * From table"); 

     var result = query.ToList(); 
     dataGrid.ItemsSource = result ; 
    } 
+0

Danke ich dachte, dass in

ich Tabellenobjekt spezifizieren muss. Jetzt ist es Arbeit. Habe aber immer noch Probleme mit Spalten. Ich habe bereits einige Daten im Raster, aber ist nicht möglich, Header der Spalte anzugeben, ich möchte Spalten anzeigen hängt von diesen in Abfrage nur angegeben. – user3688227

0

ich mein Problem ein wenig mehr erklären lassen.

Ich möchte eine Art von Dynamik-Berichten machen. Ich benutze SQLite Datenbank mit SQLite NET Erweiterung. Ich lade Abfrage von XML-Datei (diese Abfrage kann alles aus der Datenbank sein). Ich möchte irgendwie Ergebnis dieser Abfrage in Grid oder Listview laden. Normalerweise it'not Problem, weil ich „gemappt“ meine Daten an ein Objekt in Modell zum Beispiel:

using (var db = new SQLiteConnection(new SQLite.Net.Platform.Generic.SQLitePlatformGeneric(), "zakupy.db")) 
     { 
      listPerson = db.Table<Persons>().Where(x => x.Property == "P" && x.Status == 0).ToList(); 
     } 
lstPersons.DataContext = listPerson; 

Jetzt habe ich versucht, so etwas zu tun:

using (var db = new SQLiteConnection(new SQLite.Net.Platform.Generic.SQLitePlatformGeneric(), "zakupy.db")) 
     { 
      var cc = db.Query<Table>("SELECT * from Events"); 
      lstPersons.DataContext = cc.ToList(); 
     } 

Aber in Gittern nur ich sehe, etwas wie dieses: enter image description here