错误System.Data.Entity.DynamicProxies作为WPF MVVM中ListBox中的数据

时间:2017-10-10 16:09:49

标签: c# wpf mvvm listbox

我有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。 你能帮忙解决问题吗?我做错了什么?

1 个答案:

答案 0 :(得分:0)

更改以下代码: <ItemsControl.Resources> <DataTemplate DataType="{x:Type vm:EmployeeViewModel}">

<ListBox.ItemTemplate> <DataTemplate>

DataType =“{x:Type vm:EmployeeViewModel}”&gt;应该用代码写在

之后