Zostałem poproszony o stworzenie wydajnego interfejsu dla aktywnego back-endu ActivePivot. Mam już warstwę usługi po stronie klienta, która zapewnia ciągły strumień (IObservable<T>
) wstępnie zgrupowanych, wstępnie sformatowanych danych, a także metadane zawierające szczegóły wymiarów i co nie jest w raporcie. Moje wymagania można podsumować jako:Wydajna siatka przegubowa dla danych preagregowanych
- Dynamicznie ustawiaj nagłówki wierszy i kolumn na podstawie metadanych w strumieniu.
- Dynamicznie przekazuj bieżące dane do odpowiedniego wiersza/kolumny kontrolki.
- Wyróżnij zmiany danych. na przykład. zwiększone wartości mogą chwilowo zaznaczać się na zielono, zmniejszone wartości na czerwono.
- Przechowuj działania użytkowników w nagłówkach wierszy/kolumnach (np. Drążenia w dół), aby wywołać zmianę w bazowym zapytaniu MDX.
- Przechowuj akcje użytkownika (prawdopodobnie podwójnie kliknij) na wartościach danych, dzięki czemu mogę uruchomić zapytanie drążenia wszerz (którego wyniki będą wyświetlane w oddzielnej siatce danych).
Wygląda na to, że wszystkie komponenty stron trzecich są nastawione na rozłączanie (lub rzadko aktualizowane) zestawów danych dotyczących krojenia i wycinania kostek. Poświęcają wydajność, aby osiągnąć wyższy poziom elastyczności, którego po prostu nie potrzebuję, a wydajność jest najważniejsza dla mojego scenariusza.
Czy ktoś wie o kontroli WPF, która jest skoncentrowana na wydajności i nastawiona bardziej na oglądanie wstępnie zgrupowanych, wstępnie sformatowanych danych?
Słowa WPF i wydajność rzadko idą w parze (jeśli w ogóle) ... powodzenia. – Sheridan