これはクラスです:
public class TrainingData
{
public string Training { get; set; }
}
そして、これがMainWindowの残りのコードです。
Excel.Workbook xlWorkbook = xlApp.Workbooks.Open("D:/excel.xlsx");
Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1];
Excel.Range xlRange = xlWorksheet.UsedRange;
List <TrainingData> tData= new List <TrainingData>();
int rowCount = xlRange.Rows.Count;
int colCount = xlRange.Columns.Count;
//int k = 0;
for (int i = 1; i <= rowCount; i++)
{
tData.Add(new TrainingData() { Training = xlRange.Cells[i, 1].Value2.ToString() });
//MessageBox.Show(tData[k].Training);
//k++;
}
Prikaz.ItemsSource = tData;
DataGrid:
<DataGrid AutoGenerateColumns="False" Height="120" HorizontalAlignment="Left" Margin="12,12,0,0" Name="Prikaz" VerticalAlignment="Top" Width="105" ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTextColumn Header="Header" />
</DataGrid.Columns>
</DataGrid>`
つまり、Prikazは私のDataGridです。tDataは、TrainingDataオブジェクトのリストです。これらの3行のコメントを外すと、Excelファイルから情報を正しくインポートしたかどうかをテストできます。そうです。問題なく機能します。
では、なぜ空のDataGridを取得するのですか?行数は適切で、列は1つだけです。問題ありませんが、データは含まれていません。次の行を使用し Prikaz.ItemsSource = tData;
て、オブジェクトリストとDataGridをバインドしました。トレーニングは公開されていると宣言されているため、DataGridに存在する必要があります。問題の原因は何ですか?