Я автоматически сгенерировал свои модели и модель базы данных EF и теперь хочу добавить inotifypropertychanged в мои viewModels. Я посмотрел в Интернете и увидел, что мне нужно создать оболочку для автоматически сгенерированных свойств в моей модели представления, но у меня есть 2 набора свойств, которые подключаются к БД.
У меня есть два сгенерированных файла модели ENTITETI и dbEnt
ENTITETI
public partial class ENTITETI
{
public string NAZIV { get; set; }
public Nullable<int> ENT_SIF { get; set; }
}
dbEnt
public partial class dbEnt: DbContext
{
public dbEnt()
: base("name=dbEnt")
{ }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<ENTITETI> ENTITETIs { get; set; }
}
ENTITETI привязан к виду
<DataGrid.Columns>
<DataGridTextColumn Header="Ent Šifra" Binding="{Binding Path=ENT_SIF, UpdateSourceTrigger=PropertyChanged}" Width="60" />
<DataGridTextColumn Header="Naziv Entitet" Binding="{Binding Path=NAZIV, UpdateSourceTrigger=PropertyChanged}" Width="125"/>
<DataGridTemplateColumn>
И, наконец, я снова определил свойства ENTITETI в моей viewModel и добавил проверку inotifypropertychanged в столбцы набора этих свойств. Примечание. Уведомитель содержит необходимый код для inotifypropertychanged
public class HelperEntitet : Notifier
{
dbEnt_db = new dbEnt();
private ENTITETI _entiteti;
public ENTITETI ENTITETI
{
get { return _entiteti; }
}
public HelperEntitet()
{ this._entiteti = _entiteti; }
public Nullable<int> ENT_SIF
{
get { return _entiteti.ENT_SIF; }
set
{
_entiteti.ENT_SIF = value;
OnPropertyChanged("ENT_SIF");
}
}
public string NAZIV
{
get { return _entiteti.NAZIV; }
set
{
_entiteti.NAZIV = value;
OnPropertyChanged("NAZIV");
}
}
public string InsertEnt(string entAKT, string entSIF, string entKANT, string entNAZ)
{
ENTITETI newMember = new ENTITETI()
{
ENT_SIF = Convert.ToInt32(entSIF),
NAZIV = entNAZ,
};
_db.ENTITETIs.Add(newMember); ------------> This is my issue
_db.SaveChanges();
return "OK";
}
}
. Моя проблема заключается в том, что я не знаю, как объединить свойства ENTITETI (ENT_SIF) и определенные свойства ENTIETI, найденные в сгенерированном файле dbEnt. Когда я запускаю код, он работает, данные добавляются в базу данных, но не регистрируются в измененном свойстве. И это имеет смысл для меня, так как я не касаюсь этих определенных свойств, но я не уверен, как объединить их. Или я неправильно понимаю, как INotifyPropertyChanged должен и работает.
Также мой класс уведомителей
public class Notifier : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
Debug.WriteLine("SUCCESS SOMETHING HAS HAPPENED")
}
else
{
Debug.WriteLine("NOTHING HAS HAPPENED")
}
}
}