0

誰かが上記に関して正しい方向に私を向けてもらえますか?

sqlite クエリを介して複数の行を返すデータグリッドがあります。各行内には、その行に関連付けられた複数のアイテムを返すリストボックスが必要です。データグリッドの親テーブルから参照 ID を列として返していますが、リストボックスに子レコードを返す解決策が見つからないようです。

「DataGridTemplateColumn」などを介してこれを行う必要があると考えています。

質問 1: これは xaml でどのように構造化されますか?

必要なもののグラフィカル表現

注: 各 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);
        }
    }
4

1 に答える 1