有人可以为我指出关于上述内容的正确方向吗?
我有一个通过 sqlite 查询返回多行的数据网格。在每一行中,我需要一个列表框,它应该返回与该行关联的多个项目。我正在将数据网格中父表的引用 ID 作为列返回,但似乎找不到在列表框中返回子记录的解决方案。
我想我需要通过“DataGridTemplateColumn”或其他东西来做到这一点。
问题 1:这将如何在 xaml 中构造问题 2:我将如何迭代 sql 以在代码后面或任何其他方法中呈现带有子列表框项目的数据网格行
我需要的图形表示
注意:每个 ListBox 也需要是可编辑的
public void getItems()
{
try
{
string thisPermitID = "1";
DataTable potentialHazards;
String query = "select JSAPH.JobSafetyAnalysisStepPotentialHazardID \"JobSafetyAnalysisStepPotentialHazardID\""
+ ", JSA.RefPermitID \"RefPermitID\""
+ ", JSAPH.RefJobSafetyAnalysisStepID \"RefJobSafetyAnalysisStepID\""
+ ", JSAS.StepDescription \"StepDescription\""
+ ", JSAPH.PotentialHazard \"PotentialHazard\""
+ " from JobSafetyAnalysis JSA"
+ " inner join JobSafetyAnalysisStep JSAS on JSAS.RefJobSafetyAnalysisID = JSA.JobSafetyAnalysisID"
+ " inner join JobSafetyAnalysisStepPotentialHazard JSAPH on JSAPH.RefJobSafetyAnalysisStepID = JSAS.JobSafetyAnalysisStepID"
+ " where RefPermitID = '" + thisPermitID + "'";
potentialHazards = db.GetDataTable(query);
List<Item> PotentialHazardSelectedList = new List<Item>();
foreach (DataRow r in potentialHazards.Rows)
{
if (Items != null)
{
Items.Add(new Item()
{
Name = r["StepDescription"].ToString(),
ItemCollection = new ObservableCollection<string>() { r["PotentialHazard"].ToString() }
});
}
}
this.DataContext = Items;
}
catch (Exception fail)
{
String error = "The following error has occurred:\n\n";
error += fail.Message.ToString() + "\n\n";
MessageBox.Show(error);
}
}