Har en situation som jag inte känner mig så van i, och tänkte ge pellesoft en chans. Ok... detta tolkar jag som att ps inte längre är aktuellt, kul så länge det varade. Jag testar stackoverflow! Testa även här:Best practice WPF?
(Om någon inte kan svaret, men känner till ett alternativ till pellesoft så tar jag gärna emot det. Stackoverflow?)
Scenario: Kör WPF, vill ha en vy med en trädstruktur till vänster, och en annan vy till höger. Tänk "utforskaren". Trädstrukturen beskriver grovt sett objekt, med deras barn.
Vyn till höger är helt olika beroende på vad man väljer i trädet (man får ut det från djup + lite annan information, hur man tar reda på vilken det är löser jag), och är då grovt sett motsvarande vilken typ av objekt man väljer till vänster.
Min grundide är något i stil med:
1. Ha ett mall-window med träd till vänster och plats till höger.
2. Gör en (stor!) UserControl för varje typ.
3.
Antingen hårdkoda in vilka typer det rör sig om, typ:
if level = 2 and name="project" then content = new projectcontrol(selectedproject)
else ...
eller se till att alla uc implementerar ett interface, och göra någon slags service locator
selectedtype = type(selectedvalue)
content = new Service.GetControlForType(selectedtype) (selectedvalue)
eller göra samma men direkt på objektet
content = Service.GetControlForObject(selectedvalue)
4. Övriga fönstret behöver sen känna till när det händer saker i UserControl-en. Då vill man ju få ut vilket objekt den arbetar med. Har man då en lösning där uc implementerar ett interface så måste ju interfacet rimligen returnera ett object? Och så får man hålla på och mecka med Type etc.
5. Jag tänker mig att UserControlen i princip returnerar ett nytt objekt när det är ändrat, jag vill att fönstret ska bestämma när och hur det ska sparas (via repository).
Ska man då i repot ha en funktion SaveSomething() som tar ett object?
Eller är det snyggare att manuellt kolla vad det är för typ och sen köra olika SaveYaddiYaddi()?
Eller ska man ge objektet repot och låta det spara sig själv?
Eller hade det varit bättre att göra ett "internt repository" som fönstret äger, och som man sen ger user-controllerna? Känns som ett jävla jobb.
Eller är jag fel ute med att lösa det med user controls från början?
(Detta kommer nog rent tekniskt bli VB.NET, men det är ju typ skit samma.)Sv: Best practice WPF?
Sv:Best practice WPF?
http://social.msdn.microsoft.com/Forums/en-US/wpf/threads