WPF: Data från SQL till olika Panels (Binding, C#)?

Permalänk

WPF: Data från SQL till olika Panels (Binding, C#)?

Jag är ny i WPF-världen och har ett par bekymmer jag inte förstår hur man löser på bästa sätt. För "Problem 1" har jag en Windows Forms-lösning i C#, men den behöver ersättas med en WPF-variant. Språket för code-behind är C#

Problem 1.
Jag har indata från en SQL-databas som ligger i en DataTable som ser specificerar schemaläggning för olika personer och vilken resurs ("mojäng") de behöver använda, när och hur länge. Null motsvarar att personen finns men är inte inplanerad på någon resurs.
T.ex.
Adam, Mojäng 1,2012-04-02 20:30,4h
Bertil, Mojäng 1, 2012-04-03 08:00,3h
Cesar, Mojäng 2, 2012-04-02, 21:00, 1h
David, null, null, null
Adam, Mojäng 2, 2012-04-04, 01:00, 10h
Erik, Mojäng 2, 2012-04-02, 19:00, 1h
osv...

Vad jag vill ha är en horisontell "tidslinje" för varje resurs (mojäng) där någon form av grafisk representation av personerna läggs ut på rätt mojäng vid rätt tid, om resursen och/eller tidsangivelserna är null ska de hamna i en separat panel. De kan hamna där flera gånger. I en tidslinje ska det gå att flytta en person och då ska uppdateringen gå hela vägen tillbaka till databasen. Det ska också gå att drag'n'droppa mellan panelerna. Alla tidslinjer scrollas med en gemensam scroll-control.

Ett sätt att lösa det är väl att t.ex. med LINQ få ut alla personer och tider som har "Mojäng 1", "Mojäng 2", osv och på så sätt skapa en lista av listor, där varje sublista går att binda till en panel som dynamiskt skapas beroende på hur många resurser (mojänger) det finns (resurserna läses från en separat tabell i databasen). En lista innehåller allt som har "null" som resurs och den binds till en separat panel.

Vad jag förstått är det här sättet att göra saker inte vad som är önskvärt i WPF, där man hellre vill ha så mycket som möjligt av representationen i XAML och inte skapa en mängd paneler i runtime.

Jag inser att beskrivningen är knapphändig, men jag får nog begränsa mig till detta.

Går det på något vettigt sätt att åstadkomma det jag vill genom någon klyftig Binding?

2. Liknande problem som ovanstående, men nu vill jag istället ha ett antal personer som har uppgifter inplanerade varav vissa tar flera dagar.
Jag tänker mig då en panel per person där det först är någon grafisk representation av personen samt avdelningen personen jobbar på, sedan en tidslinje (också en per person) där uppgifterna ligger utplacerade på något fint sätt.

Försök att visa vad jag vill
Tid->
Adam - Skura golv (4/2) - - Laga soppa (6/2), Spika spikmatta (6/2)
Bertil - Hämta mat (4/2) - Byt fönster (3/2) - - - -
Cesar - - - - - Tanka bil (7/2)
David - - - -

Samtidigt skall alla uppgifter samlas i någon form av lista-

All information ska ligga i en SQL-databas som uppdateras om man flyttar på uppgifter i den grafiska representationen. Det behöver inte gå att flytta uppgifter mellan personer, men det vore trevligt.

Luddig formulering, men någon kanske kan komma med några tips?

---

Tacksam för all hjälp!