Member 13199484 Ответов: 1

Как заставить список, привязанный ADO net, обновить его значение


у меня есть приложение WPF имеет диспетчер с тиковым событием каждые 1 секунду и внутри тиковой функции я вызываю функцию, поэтому функция будет выполняться каждую секунду,поэтому я привязываю таблицу sqlite к списку , внутри функции может измениться какое-то значение в базе данных, к сожалению , данные не влияют на список, вот мой код:

   void windows1()

     Entity e = new Entity();
    
     private void Window_Loaded(object sender, RoutedEventArgs e)
      {
       startDigitalClocl();
       
      }

     void startDigitalClocl()
     {
     DispatcherTimer Timer = new DispatcherTimer();
     Timer.Interval = TimeSpan.FromSeconds(1);
     Timer.Tick += tickevent;
     Timer.Start();
     }

 public void tickevent(object sender, EventArgs e)
 {
     label_DWatch.Content = DateTime.Now.ToString(@"hh\:mm\:ss");
     var ReminderList = e. table.tolist();
     Alarm(ReminderList);

 }


void Alarm(List<Task> reminderList)
 {

  foreach (var Row in reminderList)
  {
   if (row.A1 ==0)
    {
     // do somthing :
      windows2 w = new windows2();
       w.show();
    }
   }
 }




и во втором окне я сделал изменение значения базы данных


Entity e = new Entity();
void dochang()
{
 var t= (e.table.Where(o => o.Id == id).FirstOrDefault());
 t.A1= "0";
 e.SaveChanges();
 this.Close();
}


моя проблема заключается в том, что значение не изменяется в списке, но изменяется в базе данных.
как я могу заставить список обновить его значение.


моя проблема заключается в том, что значение не изменяется в списке, но изменяется в базе данных.
как я могу заставить список обновить его значение.

Что я уже пробовал:

единственное решение, которое я получаю, - это принудительно перезапустить приложение после изменения, после чего список обновит значение

1 Ответов

Рейтинг:
2

#realJSOP

Вы должны повторно получить данные. Технически вы не должны привязывать свою модель непосредственно к представлению. Вы должны привязаться к промежуточной модели представления. У вас есть гораздо больше кода, чтобы добавить его для правильного маршалинга доступа к базе данных.

Ты каждую секунду попадаешь в базу данных? Как ваше приложение успевает делать что-то еще?


Member 13199484

@john Simmons вы имеете в виду, что вместо привязки данных здесь public void tickevent(object sender, EventArgs e)
{
label_DWatch.Содержание = Датавремя.Сейчас.Метод toString(@"чч\мм\:СС");
---- var ReminderList = e. таблица.список();----
Сигнализация(ReminderList);
}

чтобы вызвать другую модель представления и привязать данные ?