У меня есть классы, созданные Entity Framework следующим образом. Мое требование состоит в том, чтобы загрузить данные из базы данных в представление списка, и если какие-либо проверенные изменения произойдут в представлении списка, сохраните их обратно.wpf mvvm двусторонняя привязка данных с Entity Framework
Для этой цели в моей модели я написал еще один частичный класс, как показано ниже, который реализует INotifyPropertyChanged
. Я хочу использовать классы Entity Framework в качестве моделей.
Вдоль тех же строк у меня есть представление, содержащее вид списка для отображения Name
и Location
и флажок для каждой строки для отображения состояния проверки. Таким образом, для флажка, пример логики, которую я написал, - CheckBox IsChecked=true
, mode=two way
, UpdateSourceTrigger=PropertyChanged
. Я использую событие OnCheckedChanged
для звонка db.SaveChanges
в моей модели.
db
- объект типа SampleDbContext
. Но похоже, что привязка не происходит, т. Е. Проверенные изменения не сохраняются в базе данных.
Почему отмеченные изменения не сохраняются в базе данных?
Entity Framework классы:
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....
}
Когда я создаю частное поле, как я получаю сообщение об ошибке, как Нет назначаемыми собственности для IsChecked – nikhil
В любом случае спасибо за помощь. Я решил проблему. – nikhil
Ваш геттер выглядит не так. Не должно быть 'return m_IsChecked;'? –