2013-06-18 168 views
0

我想在我的UI中顯示一個數據網格。我將它綁定到我的viewmodel中的數據集。下面是代碼:將數據集/ DataTable綁定到一個xaml數據網格

查看:

 <StackPanel Orientation="Horizontal" Height="Auto" Name="stackPanel4" Width="Auto" Grid.Row="4"> 
      <DataGrid Name="QueryGrid" AutoGenerateColumns="True" Height="1000" Width="1000" ItemsSource="{Binding QueryTable}" Visibility="{Binding Path=QueryGridVisiblity, Converter={StaticResource BoolToVis}}" /> 
     </StackPanel> 

視圖模型:

private void OnRunQuery() 
    { 
     int count = 0; 
     DataSet queryDataset = null; 
     if (flag1 == true) 
      count++; 
     else if (flag2 == true) 
      count++; 
     else if (flag3 == true) 
      count++; 
     else if (flag4 == true) 
      count++; 
     else if (flag5 == true) 
      count++; 
     else if (flag6 == true) 
      count++; 
     if (paramCount > 0 && sqlQuery != null && paramCount == count) 
     { 
      queryDataset = _service.GetQueryDataSource(sqlQuery); 
      m_QueryTable = queryDataset; 
      OnPropertyChanged("QueryTable"); 
      m_Visibility = true; 
      OnPropertyChanged("QueryGridVisiblity"); 
     } 
    } 
    private DataSet m_QueryTable; 

    public DataSet QueryTable 
    { 
     get 
     { 
      return m_QueryTable; 
     } 
     set 
     { 
      m_QueryTable = value; 
      OnPropertyChanged("QueryTable"); 
     } 
    } 

截至上執行的應用程序,不填充數據網格。但我在我的數據集中獲取數據。

任何建議,我錯過了邏輯? 我是WPF的新手。

+0

您可以更改的ItemSource綁定指向表查看您所需要的,假設你使用單個表stucture這應該在下面的回答中工作'ItemsSource =「{Binding QueryTables.Tables [0] .DefaultView}」'like @devdigital metioned。 –

回答

1

A DataSet是一套DataTable s和一個DataGrid只顯示一個DataTable。因此公開DataTable屬性而不是DataSet

1

使用表名不帶引號

如:

ItemsSource="{Binding ProductsDataSet.Tables[Products]}"

相關問題