prezentacja danych in real-time w WPF

0

Witam,

Jako iż chcę wprowadzić do mojej aplikacji możliwość podglądu tego 'co się dzieje w zespole w danej chwili', chciałbym się dowiedzieć i zasięgnąć Waszej opinii, co wykorzystać, czego mogę użyć, aby prezentować dane in real-time w WPF. Dane chciałbym prezentować na różne sposoby - głównie DataGrid i w TextBoxach. Chodzi tutaj o kalkulacje, które będą prezentowaly obecna produktywność, utylizację, wydajność i dostępność w zespole. Korzystam z MVVM, dodatkowo mam stworzony model za pomocą ADO.NET Entity Data Model. EF nie oferuje tego typu rozwiązania - dla danych dynamicznych - z tego co wiem, a przynajmniej nie w WPF.

SQLDependency? Ustawić Timer na execute co 10 sekund? Ostatnio nawet znalazłem http://dynamic-data.org/.

Bardzo dziękuje za opinie.

1

Ten event jest automatycznie odpalany co w skazaną ilość sekund, chyba się nada.

      
       DispatcherTimer timer = new DispatcherTimer(new TimeSpan(0,0,1), DispatcherPriority.Normal, delegate 
                {
                         var a = DateTime.Now;
                         myTextBox.Text = a.ToString();
                }, this.Dispatcher);

Szczerze mówiąc nie wiem czy podczas swojego działania nie blokuje interfejsu(wszystkie eventy wpf'ie blokują wiec pewnie tak), i jeśli chcesz pobierać w nim dane z zewnątrz i zachować płynność możesz zastosować await

 
{
     //jakiś kod wykonujący się szybciutko wykona sie przed praca w asychroniczna  
    // brzydko blokuje interfejs
      await Task.Run(() =>
     {
        // jaki kolwiek kod wykonujacy sie dłuzsz ilosc czasu
           // wykona sie w tle asychnicznie
           // Nic nie blokuje bo łazi w tle
      }
         // jakis kod który wykona po wykonaniu zadania sychronicznie po wykoniu zadania
        // blokuje interfejs

}
0

Gdzie będzie odbywać się kalkulacja ? oraz czy system będzie odpytywał bazę danych czy źródła danych same będą zgłaszać zmiany ?

0

@topik92 - dzieki! sprawdze, jak tylko bede mogl.
@teo215 - W modelu. We wczesniejszej wersji mialem Stored Procedure, ktora odwalala robote. Troch tam liczenia jest, same kalkulacje sa dosc zawile, wiec raczej to tak zostawie. Wtedy dzialalo to na zasadzie execute query i tyle (pod buttonem), uzupelnialo DataGrid i Textboxy. Chciałbym aby źródła same informowaly że coś się zmienia. Dziękuje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.