我是MVVM模型的新手,所以我想要一些建议。
描述: 构建MVVM示例WPF应用程序,该应用程序从SQL表中读取数据并在视图中显示它们。 View使用WPFToolkit:grid来显示结果。应用程序运行正常,能够在网格中显示结果。该应用程序是使用VS2010开发的。
PeopleListView - >显示结果
<UserControl.DataContext>
<vm:PeopleViewModel/>
</UserControl.DataContext>
<WpfToolkit:DataGrid ItemsSource="{Binding Path=GetAllItems}" AutoGenerateColumns="False"
Name="WpfGrid" Margin="0,0,28,0" Width="301">
<WpfToolkit:DataGrid.Columns>
<WpfToolkit:DataGridTextColumn Header="Identifier" Width="Auto" Binding="{Binding Path=Id}"/>
<WpfToolkit:DataGridTextColumn Header="Description" Width="Auto" Binding="{Binding Path=Name}"/>
<WpfToolkit:DataGridTextColumn Header="Create Date" Width="Auto" Binding="{Binding Path=CreateDate}"/>
</WpfToolkit:DataGrid.Columns>
</WpfToolkit:DataGrid>
PeopleViewModel - &GT;
class PeopleViewModel
{
PeopleRepository _Repository;
public PeopleViewModel()
{
_Repository = new PeopleRepository();
}
public IEnumerable<Person> GetAllItems
{
get { return _Repository.GetAllItems(); }
}
}
PeopleRepository - &GT; Model类使用Entity Framework从DB获取所有行。
class PeopleRepository
{
MyEntities _Context;
public PeopleRepository()
{
_Context = new MyEntities();
}
public IEnumerable<Person> GetAllItems()
{
return _Context.People;
}
}
使用实体框架模型创建的MyEntities。
App.Config具有由Entity Framework模型创建的连接字符串。
在Vstudio设计模式下,视图用户控件抛出错误:“PeopleViewModel”上抛出了ArgumentException:无法创建“PeopleViewModel”的实例。
错误显示在
行 <vm:PeopleViewModel/>
任何帮助表示赞赏。感谢
答案 0 :(得分:6)
假设您的代码在运行时正常运行。您可以指示编译器在InDesignMode时忽略某些“资源”特定操作,这将逃避您获得的异常。
像:
if(! DesignerProperties.GetIsInDesignMode(new DependencyObject()) {
//Use resources
}