【问题标题】:Binding Controls to DataGrid in Visual Studio generates Object Reference Error在 Visual Studio 中将控件绑定到 DataGrid 会生成对象引用错误
【发布时间】:2014-01-24 06:16:10
【问题描述】:

我正在使用 Visual Studio 2010。

我正在使用此处描述的过程:MS Instructions for Visual Implementation of bound controls

我在数据源中找到了我想要的数据视图。我检查我是否需要一个 DataGrid 控件。我将源拖到设计器窗口并将我的网格放入 StackPanel。

一切看起来都不错。除了

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    // Load data into the table dbQueueTable. You can modify this code as needed.
    TradeX_wpf.tradexDataSetTableAdapters.dbQueueTableAdapter tradexDataSetdbQueueTableAdapter = new TradeX_wpf.tradexDataSetTableAdapters.dbQueueTableAdapter();
    tradexDataSetdbQueueTableAdapter.Fill(tradexDataSet.dbQueueTable);
    System.Windows.Data.CollectionViewSource dbQueueTableViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("dbQueueTableViewSource")));
    dbQueueTableViewSource.View.MoveCurrentToFirst();
}

...Fill(tradexDataSet.dbQueueTable) 生成错误提示

非静态字段、方法或属性“TradeX_wpf.tradexDataSet.dbQueueTable.get”需要对象引用

这是什么意思?我没有完成的文档中缺少什么?我该怎么做才能修复它?

【问题讨论】:

    标签: c# wpf visual-studio-2010 datagrid compiler-errors


    【解决方案1】:

    如错误消息所示,您需要创建tradexDataSet 的实例并将其传递给方法,而不是传递自己的类名。尝试替换此行:

    tradexDataSetdbQueueTableAdapter.Fill(tradexDataSet.dbQueueTable);
    

    有了这个:

    myTradexDataSet = new tradexDataSet();
    tradexDataSetdbQueueTableAdapter.Fill(myTradexDataSet.dbQueueTable);
    

    【讨论】:

    • 这消除了错误,但数据网格仍然没有加载数据,我仍然想知道为什么自动代码生成是错误的。我想知道加载数据网格的失败是否是因为其他一些自动生成的代码也是错误的——尽管不会导致编译器错误。谢谢。
    • 您当前的问题很清楚,提供了错误信息和相关代码,所以我可以给出解决方案。关于为什么 datagrid 仍然无法加载数据,我们无法给出任何建议,因为我们对您执行的确切步骤、当前代码的外观以及其他相关信息一无所知。您引用的链接很难遵循,所以我无法通过查看文章来猜测您做了什么。这也应该作为新问题发布(在那里提供相关信息/代码)。一问一问。
    • 我创建了一个新应用程序并成功绑定了表格,所以您是对的,原始代码中还有其他内容让我感到困惑。感谢您的信息。
    猜你喜欢
    • 2010-11-09
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-29
    相关资源
    最近更新 更多