C# 将表元素加载到组合框中
我希望将表元素(从数据库)加载到combobox。不幸的是,下面的代码没有加载项C# 将表元素加载到组合框中,c#,wpf,entity-framework,C#,Wpf,Entity Framework,我希望将表元素(从数据库)加载到combobox。不幸的是,下面的代码没有加载项 <ComboBox Margin="209,283,51,160" Name="Nazwa_menagera" ItemsSource="{Binding GetMenagerzyComboboxItems}" SelectedValuePath="Key" SelectedValue="{Binding Path=I
<ComboBox Margin="209,283,51,160" Name="Nazwa_menagera" ItemsSource="{Binding GetMenagerzyComboboxItems}"
SelectedValuePath="Key"
SelectedValue="{Binding Path=IdMenagera, Mode=TwoWay}"
DisplayMemberPath="Value"/>
不能绑定到方法,它必须是属性。而且你也不能绑定到IQueryable(至少据我所知) 一些可能让它为您工作的小更改(假设您已正确设置DataContext):
为了获得更好的用户体验,您可能应该考虑异步检索数据,并使用
INotifyPropertyChanged
和/或通过ObservableCollection
将它们发布到视图中。您可能需要包含更多的XAML代码。你有DataContext
设置吗?我没有。我在其他程序中使用了相同的代码,并且工作正常:)我只有public int-IdMenagera{get{return}IdMenagera;}set{if(_-IdMenagera!=value){u IdMenagera=value;OnPropertyChanged(()=>IdMenagera);}}
public IQueryable<ComboboxKeyAndValue> GetMenagerzyComboboxItems()
{
return
(
from menagerzy in atmaEntites.Menagerzy
select new ComboboxKeyAndValue
{
Key = menagerzy.idMenagera,
Value = menagerzy.nazwa + " " + menagerzy.imie + " " + menagerzy.nazwisko,
}
).ToList().AsQueryable();
}
public class ComboboxKeyAndValue
{
public int Key { get; set; }
public string Value { get; set; }
}
public IEnumerable<ComboboxKeyAndValue> MenagerzyComboboxItems
{
get
{
return
(
from menagerzy in atmaEntites.Menagerzy
select new ComboboxKeyAndValue
{
Key = menagerzy.idMenagera,
Value = menagerzy.nazwa + " " + menagerzy.imie + " " + menagerzy.nazwisko,
}
).ToList();
}
}
ItemsSource="{Binding MenagerzyComboboxItems, Mode=OneWay}"