WPF组合框是空白的(数据绑定)

时间:2014-05-31 09:52:51

标签: wpf

我遵循了一个简单的组合框教程(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    

                }

            }
        }

但结果不在组合框中,尽管我可以完美地打印它们。 非常感谢您的回复。

1 个答案:

答案 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();