2017-05-14 32 views
-1

是否可以在不指定表或列的情況下將查詢綁定到數據網格?將動態查詢綁定到DataGrid C#WPF

比方說,我有這個疑問:

string query = "select PersonName from Persons' 

,但它改變了,下次我有:

string query = "select Email from Persons' 

我使用SQLite網延伸,我有問題,不指定表結合明確地對象,例如:

listPerson.DataContext = db.Query.... 

回答

0

是的,你可以綁定任何表或列的數據動態網格。 首先在XAML代碼驗證列:

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

後XAML代碼,你在後面的代碼綁定數據

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

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

謝謝我認爲在

我必須指定表對象。 現在它的工作。 但仍然有列問題。我已經在網格中有一些數據,但是可能不指定colum的標題,我想顯示列取決於僅在查詢中指定的列。 – user3688227

0

讓我解釋一下我的問題有點多。

我想做一些動態報告。我用SQLite NET擴展使用SQLite數據庫。我從XML文件加載查詢(這個查詢可以是來自數據庫的任何東西)。我想加載這個查詢的結果到網格或列表視圖。 通常it'not問題,因爲我「映射」我的數據的對象模型,例如:

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; 

現在我試圖做這樣的事情:

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(); 
     } 

但在網格我只看到像這樣: enter image description here