0

次のようなMySQLデータベーステーブルがあります(エンティティフレームワークを使用しています): ここに画像の説明を入力

WPFでそれらを取得して入力するために使用するコードは次のとおりです:CRUDクラスファイル:

        //Get all records based on ActivityID and TaskID.
    public IList<Model.questionhint> GetRecords(int listTask, int listActivity)
    {
        IList<Model.questionhint> lstRecords = context.questionhints.ToList();
        return lstRecords.Where(a => a.TaskID == listTask && a.ActivityID == listActivity).ToList(); 

    }

コードビハインド:

      public MainWindow2()
    {
        InitializeComponent();
        PopulateQuestion(1, 5);
    }

    private void PopulateQuestion(int activityID, int taskID)
    {
        IList<Model.questionhint> lstQuestionHints = qh.GetRecords(taskID, activityID);

        foreach(Model.questionhint qhm in lstQuestionHints)
        {

            TextBlock tb = new TextBlock();
            tb.Text = qhm.QuestionContent;              
            tb.FontWeight = FontWeights.Bold;
            tb.FontSize = 24;
            WrapPanelTest.Children.Add(lbl);

            if (qhm.Option1.Trim().Length > 0 &&
                qhm.Option2.Trim().Length > 0)
            {
                ComboBox cb = new ComboBox();
                cb.Items.Add(qhm.Option1);
                cb.Items.Add(qhm.Option2);
                cb.Width = 200;
                WrapPanelTest.Children.Add(cb);
            }

        }
    }

私のプログラムでの表示方法:

ここに画像の説明を入力

ご覧のとおり、質問はすべて一緒に合成されています。上記のデータベース テーブルの questionNo に基づいてそれらを分離したいと思います (たとえば、同じ questionNo を持ついくつかのレコードは一緒に合成する必要があります)。私はそれらを次のように分離したい:

私は[コンボボックス]で毎日昼寝をしています。

太陽 [コンボボックス] は地球の周りを動きません。

これに関するヘルプに感謝します。事前に感謝します。

4

2 に答える 2

1

コントロールを WrapPanel ではなく StackPanel に追加します。

于 2013-07-11T03:22:21.800 に答える
1

これを試して

     StackPanel sp=new StackPanel();
    foreach(Model.questionhint qhm in lstQuestionHints)
    {
    StackPanel sp1=new StackPanel(){Orientation=Orientation.Horizontal};     
        TextBlock tb = new TextBlock();
        tb.Text = qhm.QuestionContent;              
        tb.FontWeight = FontWeights.Bold;
        tb.FontSize = 24;
        sp1.Children.Add(lbl);

        if (qhm.Option1.Trim().Length > 0 &&
            qhm.Option2.Trim().Length > 0)
        {
            ComboBox cb = new ComboBox();
            cb.Items.Add(qhm.Option1);
            cb.Items.Add(qhm.Option2);
            cb.Width = 200;
            sp1.Children.Add(cb);
        }
       sp.Children.Add(sp1); 
    }
    WrapPanelTest.Children.Add(sp);
于 2013-07-11T04:00:20.220 に答える