2013-07-11 3 views
0

У меня есть таблица базы данных MySQL (я использую рамки сущности), как это: enter image description hereАранжировка для того, со ссылкой на колонку

Вот мои коды, которые я использую, чтобы получить и заполнить их на 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); 
      } 

     } 
    } 

Как появляются на моей программе:

enter image description here

Как вы можете видеть, вопросы все усугубляются вместе, я хочу, чтобы отделить их на основе questionNo в приведенной выше таблице базы данных (например, несколько записей с одинаковым questionNo должна быть соединением вместе.) но я понятия не имел, как это сделать. Я хочу их разделить как:

I [comboBox], чтобы поспать каждый день.

Солнце [comboBox] не перемещается по земле.

Цените любую помощь по этому вопросу, заранее.

ответ

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); 
+0

Привет, спасибо, что потратили время на то, чтобы помочь мне, действительно оцените его. Теперь каждая запись разделяется по строкам. Я думаю, мне нужно изменить свой запрос, чтобы он группировал запись одного и того же вопроса вместе. – user2376998

1

Добавить элементы управления в StackPanel вместо WrapPanel.

+0

Почему? жаль новых WPF, я не совсем уверен, что каждая панель делает – user2376998

+0

StackPanel устраивает его детей Horizontaly и Vertically, проверьте его свойство Orientation. По умолчанию он вертикальный. WrapPanel обертывает детей, если их ширина выходит из доступного пространства, и только устраивает чадры по горизонтали. – Nitesh

+0

Поэтому вам понадобится StackPanel для добавления TextBlock и ComboBox, и его ориентация должна быть горизонтальной. Затем добавьте этот StackPanel в другую StackPanel, чья установка будет вертикальной. – Nitesh

Смежные вопросы