【发布时间】:2014-09-21 19:12:52
【问题描述】:
我有以下实体框架生成的类。我的要求是将数据库中的数据加载到列表视图中,如果列表视图中发生任何已检查的更改,请将其存储回来。
为此,我在我的模型中编写了另一个部分类,如下所示,它实现了INotifyPropertyChanged。我想使用我的实体框架类作为模型。
同样,我有一个视图,其中包含一个用于显示Name 和Location 的列表视图,以及一个用于每行显示选中状态的复选框。所以对于复选框,我编写的逻辑示例是CheckBox IsChecked=true,mode=two way,UpdateSourceTrigger=PropertyChanged。我使用OnCheckedChanged 事件在我的视图模型中调用db.SaveChanges。
db 是 SampleDbContext 类型的对象。但似乎绑定没有发生,即检查的更改没有存储到数据库中。
为什么检查的更改没有保存到数据库中?
实体框架类:
public partial class Datagrid
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public Nullable<bool> IsChecked { get; set; }
}
public partial class SampleDbContext : DbContext
{
public SampleDbContext() : base("name=SampleDbContext")
{}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Datagrid> Datagrids { get; set; }
}
我在模型中的自定义类:(这是一个示例代码,可能有一些拼写错误,请忽略它)
[MetaDataType(typeof(grid))]
public partial class DataGrid
{}
public class grid:INotifyPropertyChanged
{
public Nullable<bool> IsChecked
{
get { return IsChecked; }
set
{
IsChecked=value;
OnPropertyChanged("IsChecked");
}
}
//INotifyPropertyChanged Implementation....
}
【问题讨论】:
标签: c# wpf entity-framework mvvm