2012-08-23 43 views
-2

我知道这是一个非常常见和存在的问题,但我在这里尝试了许多解决办法,我不断收到同样的错误项目集合必须在使用ItemsSource前空:尝试现有的解决方案:(

。请不要让我知道的Bug在于:( 并请编辑/建议,如果我错过任何信息

代码: XAML:

<DataGrid Name="dtgQCNumbers" 
           Width="409" 
           AutoGenerateColumns="False" 
           ItemsSource="{Binding Path=.}" 
           CanUserResizeColumns="True" 
           SelectionChanged="dtgQCNumbers_SelectionChanged" 
           > 

          <DataGrid.Columns> 
          <DataGridCheckBoxColumn Header="IsChecked" Width="100" 
                     Binding="{Binding Path=IsActive}" 
                     CanUserResize="True"/>         

               <DataGridTextColumn Header="QC_ID" Width="100" 
                    Binding="{Binding Path=DataGridTextBox_QCList1}" 
                    CanUserResize="True"/> 

               <DataGridTextColumn Header="Summary" Width="100" 
                    Binding="{Binding Path=DataGridTextBox_QCSummary}" 
                    CanUserResize="True"/> 

               <DataGridComboBoxColumn Header="ControlOption" Width="100" 
                     SelectedItemBinding="{Binding Path=DataGridComboxBox_Control}" 
                     ScrollViewer.CanContentScroll="True" 
                     ScrollViewer.VerticalScrollBarVisibility="Auto" 
                     IsReadOnly="True" 
                     CanUserResize="True"> 
               <DataGridComboBoxColumn.ItemsSource> 
                 <col:ArrayList> 
                  <sys:String>AVS</sys:String> 
                  <sys:String>DB</sys:String> 
                    <sys:String>AVS_DB</sys:String> 
                 </col:ArrayList> 
                </DataGridComboBoxColumn.ItemsSource> 

               </DataGridComboBoxColumn> 

         </DataGrid.Columns> 
         grid.ColumnWidth = new DataGridLength(100); 

</DataGrid> 

背后的次代码Ë数据绑定:

private void OnInitialized() 
    { 
     string projectName = null; 
     string crNumber = null; 
     ComboBoxItem selectedProject; 
     selectedProject = (ComboBoxItem)ddlProject.SelectedItem; 
     projectName = selectedProject.Content.ToString(); 

     ActiveDirectoryWrapper.ApplicationUserData userData = Common.GetUserData(userName); 

     string queryString; 
     if (rdoMyQCs.IsChecked == true) 
     { 
      queryString = "Blalalalala"; 
     } 
     else 
     { 
      queryString = "Blahblah"; 
     } 

     Recordset qcIdSet = Common.queryTestDirector(projectName, queryString); 
     qcIdSet.First(); 
     string colname = qcIdSet.get_ColName(0); 

     _ds = new DataSet(); 
     DataTable table = new DataTable(); 
     _ds.Tables.Add(table); 

     DataColumn c1 = new DataColumn("IsChecked", typeof(bool)); 
     table.Columns.Add(c1); 
     DataColumn c2 = new DataColumn("QC_ID", typeof(string)); 
     c2.MaxLength = 500; 
     table.Columns.Add(c2); 
     DataColumn c3 = new DataColumn("QC_Summary", typeof(string)); 
     c3.MaxLength = 500; 
     table.Columns.Add(c3); 
     DataColumn c4 = new DataColumn("Control Option", typeof(string)); 
     c4.MaxLength = 500; 
     table.Columns.Add(c4); 
     while (!qcIdSet.EOR) 
     { 
      DataRow rw = table.NewRow(); 
      rw["IsChecked"] = true; 
      rw["QC_ID"] = qcIdSet["BG_BUG_ID"].ToString(); 
      rw["QC_Summary"] = ""; 
      rw["Control Option for Deployment"] = "AVS_DB"; 
      table.Rows.Add(rw); 
      qcIdSet.Next(); 
     } 

     dtgQCNumbers.DataContext = _ds.Tables[0]; 
     throw new NotImplementedException(); 
    } 

我不断收到错误“Items集合必须在使用ItemsSource前空”

+0

的可能重复[“Items集合必须在使用ItemsSource前空的。”(http://stackoverflow.com/questions/ 683863/items-collection-must-empty-before-using-itemssource) –

回答

0

为什么在世界上,你会放置一个C#stringDataGrid.Items

</DataGrid.Columns> 
    grid.ColumnWidth = new DataGridLength(100); 
</DataGrid> 

这并不令人惊讶的是,你会得到这个错误...

+0

谢谢HB,一个新手的错误。 – Ashutosh

相关问题