none
出现【“System.Windows.Controls.DataGrid”不包含“DataSource”的定义】错误,求高手解答,谢谢! RRS feed

  • 问题

  • 已经using System.Windows.Forms了,为什么程序还出现如下错误呢?
    错误 1 “System.Windows.Controls.DataGrid”不包含“DataSource”的定义,并且找不到可接受类型为“System.Windows.Controls.DataGrid”的第一个参数的扩展方法“DataSource”(是否缺少 using 指令或程序集引用?)
    错误 2 “System.Windows.Controls.DataGrid”不包含“DataMember”的定义,并且找不到可接受类型为“System.Windows.Controls.DataGrid”的第一个参数的扩展方法“DataMember”(是否缺少 using 指令或程序集引用?)
    VS2010 4.0FW 环境
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    //using System.Text;
    using System.Windows;
    using System.Windows.Forms;
    using System.Data.OleDb;
    
    
    
    
    namespace ElevationCalculation
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                this.textBoxInput.Text = @"线路设计数据文件.xlsx";
            }
    
            private void buttonSelectInput_Click(object sender, RoutedEventArgs e)
            {
                this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
                this.openFileDialog1.Filter = "线路设计数据(xlsx)|*.xlsx";
                this.openFileDialog1.FileName = this.textBoxInput.Text;
                if (this.openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    this.textBoxInput.Text = this.openFileDialog1.FileName;
            }
    
            private void buttonReadInput_Click(object sender, RoutedEventArgs e)
            {
                string filePath = this.textBoxInput.Text;
                string strConn;
                strConn = string.Format("Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties='Excel 12.0;IMEX=1'",
                                  filePath);
                OleDbConnection conn = new OleDbConnection(strConn);
                OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [施工右线坡度$]", strConn);
                DataSet myDataSet = new DataSet();
                myCommand.Fill(myDataSet);
                this.dataGrid1.DataSource = myDataSet;
                this.dataGrid1.DataMember = myDataSet.Tables[0].TableName;
            }
    
            private System.Windows.Forms.OpenFileDialog openFileDialog1;
        }
    }
    


    • 已编辑 toproc 2012年2月4日 10:55
    2012年2月4日 10:52

答案

  • 你好 你用到的是WinForm里边的DataGrid,WinForm和WPF是不同的

    在WPF中,使用ItemSource属性

    1. <DataGrid x:Name="dataGrid" ItemsSource="{Binding}" AutoGenerateColumns="False">
    2. <DataGrid.Columns>
    3. <DataGridTextColumn Header="Name" Width="80" Binding="{Binding Name}"/>
    4. <DataGridTextColumn Header="Age" Width="50" Binding="{Binding Age}"/>
    5. <DataGridComboBoxColumn Width="80" Header="Sex"
    6. SelectedItemBinding="{Binding Sex}"
    7. ItemsSource="{Binding Source={StaticResource sexEnum}}"/>
    8. <DataGridCheckBoxColumn Header="Pass Exam?" Width="100"
    9. Binding="{Binding Pass}"/>
    10. <DataGridHyperlinkColumn Header="Email" Width="150"
    11. Binding="{Binding Email}"/>
    12. </DataGrid.Columns>
    13. </DataGrid>

    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    微软中文论坛同城社区成都QQ群:74268428
    My Blog http://kosmisch.net
    Chengdu,China
    2012年2月4日 13:53
    版主
  • dear

    WPF的资料细节方式请参考以下

    http://www.dotblogs.com.tw/yc421206/category/3419.aspx


    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2012年2月5日 17:36

全部回复