2017-07-23 32 views
0

我通過填充數據集取使用mysqlconnector從數據庫中的數據:結合數據

DataSet myData = new DataSet(); 
MySqlDataAdapter adapter; 

string query = "Select * from visitors"; 
string table = "visitors"; 
adapter = new MySqlDataAdapter(query, connection); 

adapter.Fill(myData, table); 

我試圖將數據從myData綁定到數據網格(MainWindow.xaml.cs):

var data = myData.Tables["visitors"].AsEnumerable(); 
    dataGrid.ItemsSource = data; 

MainWindow.xaml

`<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsReadOnly="True"> 
<DataGrid.Columns> 
    <DataGridTextColumn Header="First name" /> 
    <DataGridTextColumn Header="Second name" /> 
</DataGrid.Columns> 
<DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
     <DockPanel> 
      <TextBlock Text="{Binding Path=firstName, TargetNullValue=no data}"/> 
      <TextBlock Text="{Binding Path=secondName,TargetNullValue=no data}"/> 
     </DockPanel> 
    </DataTemplate> 
</DataGrid.RowDetailsTemplate> 
</DataGrid>` 

,我唯一得到的是23個空行 - 與mysql表中的數字相同。我GOOGLE了這個問題,但我找不到合適的答案。

回答

0

我會給你一個理論的解決方案。

  1. 創建一個觀察的集合(例如:ObservableCollection<Person>),其中Person有一個像firstNamesecondName的財產,你在你的代碼中提到。
  2. 填入ObservableCollectionDataset,您從Database檢索。
  3. 最後BindObservableCollectionDataGridItemSource

在你上面的代碼片斷你是不是BindingItemSource,你剛纔提到的Properties

<DataGrid x:Name="dataGrid" AutoGenerateColumns="False" IsReadOnly="True" ItemsSource="{Binding Path = PersonCollection}">

+0

謝謝,它的工作。然而,在DataGrid'ItemsSource =「{Binding Path = PersonCollection}」'中specyfing ItemsSource不起作用。相反,我在'MainWindow.xaml.cs'和' 在MainWindow.xaml裏面。 –