2

これが私のコードです。XAML :

<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding }" Height="200" Name="dataGrid1" Width="200" />

cs:

SqlConnection thisConnection = new SqlConnection(@"Server=(local);Database=Sample_db;Trusted_Connection=Yes;");
thisConnection.Open();    
string Get_Data = "SELECT * FROM emp";  
SqlCommand cmd = thisConnection.CreateCommand();
cmd.CommandText = Get_Data;
SqlDataAdapter sda = new SqlDataAdapter(cmd);               
DataTable dt = new DataTable("emp");
sda.Fill(dt);
// MessageBox.Show(cmd.CommandText);
dataGrid1.ItemsSource = dt.DefaultView;  

グリッドに線を表示します。実際のデータではありません。助けてください。前もって感謝します。

4

2 に答える 2

2

Datatable でデータグリッド行を生成しませんAutoGenerateColumns="False"

に変更するか、プロパティAutoGenerateColumns="True"に独自のデータ列を追加してください。<Datagrid.Columns>

于 2013-06-18T12:45:41.657 に答える
0

ItemSource を使用する場合は、ItemTemplate を生成する必要があります。 TemplateColumns を使用して WPF DataGrid を DataTable にバインドする

代わりに DataContext を使用する:

SqlConnection thisConnection = new SqlConnection(@"Server=(local);Database=Sample_db;Trusted_Connection=Yes;");
                thisConnection.Open();    
                string Get_Data = "SELECT * FROM emp";  
                SqlCommand cmd = thisConnection.CreateCommand();
                cmd.CommandText = Get_Data;
                SqlDataAdapter sda = new SqlDataAdapter(cmd);               
                DataTable dt = new DataTable("emp");
                sda.Fill(dt);
               // Here:                
               dataGrid1.DataContext = dt.DefaultView; 

DataContext は、FrameworkElement のすべての子孫の一般的な (依存関係) プロパティです。親から子へ論理ツリーを介して継承され、DataBinding の暗黙的なソースとして使用できます。それ自体では何もしません。基本的にデータバインドする必要があります。

ItemsSource は、ItemsControl 派生コントロール (または HierarchicalDataTemplate) でテンプレート化された項目の生成のソースを識別するプロパティです。

于 2013-06-18T12:42:12.530 に答える