我遵循了一个简单的组合框教程(http://www.wpf-tutorial.com/list-controls/combobox-control/)。 这是我对组合框的XAML:
<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属性,绑定或由List设置。 使用您之前的代码:
CoursesTeach.ItemsSource = context.CourseSet.Where(row => row.Dicipline != null).Select(row => row.Dicipline).ToList();