【问题标题】:Binding dynamic query to DataGrid C# WPF将动态查询绑定到 DataGrid C# WPF
【发布时间】:2017-10-13 07:41:42
【问题描述】:

是否可以在不指定表或列的情况下将查询绑定到数据网格?

假设我有这个查询:

string query = "select PersonName from Persons'

但它会改变,下次我有:

string query = "select Email from Persons'

我正在使用 Sqlite Net 扩展,但在没有明确指定表对象的情况下绑定有问题,例如:

listPerson.DataContext = db.Query....

【问题讨论】:

    标签: c# wpf sqlite sqlite-net sqlite-net-extensions


    【解决方案1】:

    是的,您可以将任何表或列动态绑定到数据网格。 首先在 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 ;
        }
    

    【讨论】:

    • 谢谢,我认为在 中我必须指定表对象。现在它正在工作。但是列仍然有问题。我已经在网格中有一些数据,但是可以不指定列的标题,我想显示的列仅取决于查询中指定的这些。
    【解决方案2】:

    让我再解释一下我的问题。

    我想做一些动态报告。我使用带有 SQLite NET 扩展的 SQLite 数据库。我从 xml 文件加载查询(此查询可以是数据库中的任何内容)。我想以某种方式将此查询的结果加载到网格或列表视图。 通常这不是问题,因为我将数据“映射”到模型中的对象,例如:

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

    但在网格中我只看到这样的内容:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多