我是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>
Run Code Online (Sandbox Code Playgroud)
PeopleViewModel - >
class PeopleViewModel
{
PeopleRepository _Repository;
public PeopleViewModel()
{
_Repository = new PeopleRepository();
}
public IEnumerable<Person> GetAllItems
{
get { return _Repository.GetAllItems(); }
}
}
Run Code Online (Sandbox Code Playgroud)
PeopleRepository - > Model类使用Entity Framework从DB获取所有行.
class PeopleRepository
{
MyEntities _Context;
public PeopleRepository()
{
_Context = new MyEntities();
}
public IEnumerable<Person> GetAllItems()
{
return _Context.People;
}
}
Run Code Online (Sandbox Code Playgroud)
使用实体框架模型创建的MyEntities.
App.Config具有由Entity Framework模型创建的连接字符串.
在Vstudio设计模式下,视图用户控件抛出错误:"PeopleViewModel"上抛出了ArgumentException:无法创建"PeopleViewModel"的实例.
行显示错误
<vm:PeopleViewModel/>
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏.谢谢
假设您的代码在运行时正常工作.您可以指示编译器在InDesignMode时忽略某些"资源"特定操作,这将逃避您获得的异常.
喜欢:
if(! DesignerProperties.GetIsInDesignMode(new DependencyObject()) {
//Use resources
}
Run Code Online (Sandbox Code Playgroud)