2016-02-11 6 views
0

У меня есть набор данных, состоящий из 4 Datatables и хочу привязать его к моему datagrid, но когда я смотрю на datagrid, он пуст. Так что я делаю:Datagrid - Dataset/Datatable binding not working

DataSet dtsResults = myPcd.GetDimensionsDataSet(); 
dtgResults.DataContext = dtsResults.Tables; 

enter image description here

--- ADD --- Вот как я формируют Dataset:

obcPcdlrnDimensionCommands.Clear(); 
    int maxNumCommands = (pcdPartProgram.Commands.Count < MAX_NUM_COMMANDS) ? pcdPartProgram.Commands.Count : MAX_NUM_COMMANDS; 
    PCDLRN.Commands pcdCommands = pcdPartProgram.Commands; 
    //2. ciclo su tutti i comandi 
    int numTables = dtsDimensions.Tables.Count + 1; 
    dtsDimensions.Tables.Add("DATA_TABLE_" + numTables); 
    dtsDimensions.Tables[0].Columns.Add(); 
    dtsDimensions.Tables[0].Columns.Add(); 
    dtsDimensions.Tables[0].Columns.Add(); 
    dtsDimensions.Tables[0].Columns.Add(); 
    String CurName = string.Empty; 
    for (int iCommand = 1; iCommand < maxNumCommands; iCommand++) 
    { 
     PCDLRN.Command pcdCommand = pcdCommands.Item(iCommand); 
     if (pcdCommand.IsDimension && pcdCommand.Marked) 
     { 
     if (pcdCommand.Type == PCDLRN.OBTYPE.DIMENSION_START_LOCATION || pcdCommand.Type == PCDLRN.OBTYPE.DIMENSION_TRUE_START_POSITION) 
     { 
      CurName = pcdCommand.ID; 
     } 
     else 
     { 
      if (pcdCommand.ID != string.Empty) 
      CurName = pcdCommand.ID; 

      double approxMeasured = Math.Round(pcdCommand.DimensionCommand.Measured, 9); 
      dtsDimensions.Tables[0].Rows.Add(CurName, delenda_PART_NAME, pcdCommand.DimensionCommand.AxisLetter, approxMeasured); 
     } 
     } 
+0

Нажмите на одну из этих луп и сообщить нам, если таблица пуста. Кроме того, не публикуйте скриншоты, а фактический код. Можно ли использовать фотошоп для просмотра кода в окне отладчика? –

+0

где ваш код привязки datagrid ,,, –

+0

@KuttyRajeshValangai Извините, не дал понять. dtgResults - это мой datagrid. Не dtgResults.DataContext = dtsResults.Tables; код привязки? – Patrick

ответ

1

DataGrid в WPF показывает только один стол и вы скажите ей привязать к DataSet, который содержит более одной таблицы, из-за чего у вас есть два варианта:
1- привязать одну таблицу к ItemsSource следующим образом:

yourDatagrid.ItemsSource = yourDataSet.Tables[0]; \\or yourDataSet.Tables["TableName"] 

2- связывает все DataSet, а затем сказать вам DataGrid, чтобы связать вашу конкретную таблицу, как это:

<DataGrid ItemsSource="{Binding TableName}"/>