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}"
/>
您没有执行查询,因此当您在这种情况下需要的是IEnumerable时,您将返回IQueryable。调用ToList()来强制执行查询:
countryComboBox.DataContext = this.raeContext.Countries.OrderBy(i =>
i.CountryDescription).ToList();
注意:
您可以在调试时从输出窗口读取数据绑定错误。