我有ListBox,它必须显示来自实体框架代码第一个数据库的数据。所以我的代码就是这个任务:
<ListBox Grid.Column="0"
ItemsSource="{Binding PersonCollection}"
SelectedItem="{Binding ThePerson, Mode=TwoWay}">
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type vm:EmployeeViewModel}">
<StackPanel Orientation="Horizontal">
<TextBlock Padding="2">
<TextBlock.Text>
<MultiBinding StringFormat=" {0} {1} {2}">
<Binding Path="ThePerson.Surname"/>
<Binding Path="ThePerson.FirstName"/>
<Binding Path="ThePerson.MidleName"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</DataTemplate>
</ItemsControl.Resources>
</ListBox>
我的ViewModel看起来像:
public EmployeeViewModel()
{
ThePerson = new Person();
_perlog = new PersonLogic();
PersonCollection = new ObservableCollection<Person>(_perlog.Get());
}
ThePerson和PersonCollection的OnThePropertyChanged() PesonLogic中用于显示表中数据的代码:
internal IEnumerable<Person> Get()
{
return _dbContext.Persons.ToList();
}
所有这些代码都通过Error System.Data.Entity.DynamicProxies。 你能帮忙解决问题吗?我做错了什么?
答案 0 :(得分:0)
更改以下代码:
<ItemsControl.Resources>
<DataTemplate DataType="{x:Type vm:EmployeeViewModel}">
要
<ListBox.ItemTemplate>
<DataTemplate>
DataType =“{x:Type vm:EmployeeViewModel}”&gt;应该用代码写在
之后