WPF组合框.DataContext不拾取之前在不同项目中工作的表内容

本文关键字:工作 项目 DataContext 组合 WPF | 更新日期: 2023-09-27 18:07:15

我有以下和平的代码,它将填充一个ComboBox与表中的项目列表。它在以前的开发中完美地工作,但在新的开发中似乎没有显示任何东西。两者都连接到同一个数据库,一切都是一样的。当我设置一个断点时,它甚至得到了项目,但是当要显示它们时,ComboBox的内容是空的。当它第一次使用的时候是在2013年的Visual Studio中开发的,新的是在2015年,但我认为这应该不是一个问题。什么好主意吗?

代码:

public partial class CustomerManagementWindow : Window
{
    private RaeConfigurationEntities raeContext = null;
    bool newCustomer;
    public CustomerManagementWindow()
    {
        InitializeComponent();
        this.raeContext = new RaeConfigurationEntities();
        countryComboBox.DataContext = this.raeContext.Countries.OrderBy(i => i.CountryDescription);
    }
XAML:

<Window.Resources>
    <DataTemplate x:Key="CountryTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=CountryDescription}" />
            <TextBlock Text=" : " />
            <TextBlock Text="{Binding Path=CountryName}" />
        </StackPanel>
    </DataTemplate>
</Window.Resources>

<ComboBox Margin="170,152,10,0" Name="countryComboBox" 
              VerticalAlignment="Top" 
              ItemsSource="{Binding}" 
              ItemTemplate="{StaticResource CountryTemplate}" 
               />

WPF组合框.DataContext不拾取之前在不同项目中工作的表内容

您没有执行查询,因此当您在这种情况下需要的是IEnumerable时,您将返回IQueryable。调用ToList()来强制执行查询:

    countryComboBox.DataContext = this.raeContext.Countries.OrderBy(i => 
i.CountryDescription).ToList();

注意:
您可以在调试时从输出窗口读取数据绑定错误。