2014-05-31 3 views
0

Я следовал простому учебнику для comboboxes (http://www.wpf-tutorial.com/list-controls/combobox-control/). Вот моя XAML для выпадающего списка: заWPF Combobox пуст (привязка данных)

<ComboBox Name="CoursesTeach" Grid.Row="7" Grid.Column="1" Width="150" Height="Auto" Margin="0,24"> 
       <ComboBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Name}" Foreground="Black" /> 
         </StackPanel> 
        </DataTemplate> 
       </ComboBox.ItemTemplate> 
      </ComboBox> 

Код:

public AddTrainer() 
     { 
      InitializeComponent(); 

      using (Model1Container context = new Model1Container()) 
      { 

       foreach (var row in context.CourseSet) 
       { 
        if (row.Discipline != null) 
        {      
         CoursesTeach.ItemsSource = row.Discipline;      
        } 
        MetroCustomBox.ShowOK(row.Discipline); // i can see right values  

       } 

      } 
     } 

Но результаты просто не в выпадающем списке, хотя я могу вполне может распечатать их. Большое спасибо за ваши ответы.

+0

Что такое 'Дисциплина'? –

ответ

0

Чтобы добавить элементы в свой Combobox по коду, вы можете использовать свойство Items. С предыдущего кода:

foreach (var row in context.CourseSet) 
{ 
    if (row.Discipline != null) 
    {      
     CoursesTeach.Items.Add(row.Discipline);      
    } 
} 

Но лучший способ, это использовать ItemsSource свойство, с обязательными, или установить с помощью списка. С вашим предыдущим кодом:

CoursesTeach.ItemsSource = context.CourseSet.Where(row => row.Dicipline != null).Select(row => row.Dicipline).ToList(); 
+0

Спасибо за ответ. Но мой combobox по-прежнему выглядит белым следующим образом: http://img4.hostingpics.net/pics/813704Sanstitre.png. У меня действительно 5 строк в моей базе данных, но текст не появится. – Greuh

+0

У вас есть ошибка привязки в окне вывода? – Seuleuzeuh

+0

Хорошо, я определенно хромой. Это просто Text = "{Bindind}" вместо Text = "{Bindind Name}". Спасибо за терпение. – Greuh

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