【问题标题】:Databind a query from a dataset in WPF onto a datagrid/listview将 WPF 中数据集的查询数据绑定到数据网格/列表视图
【发布时间】:2015-10-06 03:05:59
【问题描述】:

我在数据集设计器中对数据集的表进行了查询,但我不太确定如何将其数据绑定到数据网格/列表视图。

我看到它已添加到 tableadapater(命名为方法 FillBy)。但我不知道如何将这些查询结果绑定到网格甚至列表视图。

在后面的代码中,我引用了表格适配器。

public partial class form1: Window
    {
        Dataset1 CDataSet = new Dataset1();
        DataSet1TableAdapters.TBLRECEIPTSTableAdapater tblTabAdapater = new DataSet1TableAdapters.TBLRECEIPTSTableAdapater();
    }



 private void Window_Loaded(object sender, RoutedEventArgs e)
    {
             tblTabAdapater.FillBy(Dataset1.TBLRECEIPTS);
            System.Windows.Data.CollectionViewSource tBLRECEIPTSViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("tBLRECEIPTSViewSource")));
            tBLRECEIPTSViewSource.View.MoveCurrentToFirst();
    }

我有一个数据网格,将其命名为 datagrid1,只是不确定如何用结果填充数据。

【问题讨论】:

    标签: c# wpf datagrid dataset


    【解决方案1】:

    假设您的Dataset1.TBLRECEIPTS 填写正确,并假设您使用的是System.Windows.Controls.DataGrid,那么应该这样做:

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
     tblTabAdapater.FillBy(Dataset1.TBLRECEIPTS);
     datagrid1.DataContext = Dataset1.TBLRECEIPTS;
    }
    

    或者,避免任何 XAML 绑定并在后面的代码中执行所有操作:

    private void DataGrid_Loaded(object sender, RoutedEventArgs e)
    {
        tblTabAdapater.FillBy(Dataset1.TBLRECEIPTS);
        datagrid1.ItemsSource = Dataset1.TBLRECEIPTS.AsEnumerable();
    }
    

    【讨论】:

    • 谢谢,知道了。必须将 FillBy(...) 放在 window_loaded 中,否则 Id 会出现无法启用约束错误。此外,如果将来有人决定不采用 XAML 路线,请确保将 AutoGenerateColumns 设置为 true。再次感谢 jstreet/
    猜你喜欢
    • 1970-01-01
    • 2011-01-31
    • 2017-05-14
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多