@tryvols
Front-End разработчик

Как привязать отображаемые данные в DataGrid(wpf) к БД?

Доброго времени суток. Никак не могу найти решение такой задачи. Нужно реализовать в программе RealTime, то есть произошло изменение в БД - DataGrid обновляется, или просто отображает актуальные данные. В качестве БД использую MySQL. Заранее благодарю за помощь)
  • Вопрос задан
  • 340 просмотров
Решения вопроса 3
Rou1997
@Rou1997
Таймер, или за файловой системой следить можно.
Ответ написан
andrewpianykh
@andrewpianykh
dataGrid.ItemsSource = dataFromMySql;

var timer = new System.Windows.Threading.DispatcherTimer();
timer.Tick += (oe,e)=> dataGrid.Items.Refresh(); 
/* или  */
/* timer.Tick += (oe,e)=> { dataGrid.ItemsSource = null; dataGrid.ItemsSource = dataFromMySql; } */
timer.Interval = new TimeSpan(0,0,10);
timer.Start();
Ответ написан
Комментировать
@tryvols Автор вопроса
Front-End разработчик
Решение оказалось таковым.
private void initializeTimer()
        {
            var dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 5);
            dispatcherTimer.Start();
        }

        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            Companies.companies.Clear();
            Companies.Get();
            grid.Items.Refresh();
        }

static class Companies
    {
        public static System.Data.DataSet companies = new System.Data.DataSet();

        public static System.Data.DataView Get()
        {
            User.connect.Open();
            MySqlCommand cmd = new MySqlCommand("SELECT * FROM data", User.connect);
            MySqlDataAdapter adapter = new MySqlDataAdapter();
            adapter.SelectCommand = cmd;
            adapter.Fill(companies);
            User.connect.Close();
            return new System.Data.DataView(companies.Tables[0]);
        }
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы