Domanda

Questa sarà probabilmente ovvio, ma non riesco a trovare il modo migliore.

Voglio mostrare ToDo dell'utente è in una casella di riepilogo. Questi ToDo di sono nel database e sono costituiti da un ID, ID utente e la descrizione.

L'utente connesso al app.

Come posso recuperare il ToDo per quel certo UserID e configurarlo per il legame con la casella di riepilogo?

Stavo cercando un ObjectDataProvider ma io riesco a capire come utilizzare che, in combinazione con roba non statico (come il mio _dbService, userId, lingua, ...).

sono le uniche opzioni per fare tutte quelle cose statica rispetto vincolante nel codice dietro?

Se è così, questo significa che ObjectDataProvider non è molto utile, no? Trovo un sacco di esempi di esso viene utilizzato con un parametro hardcoded ma ho quasi vedere ogni situazione in cui avrei bisogno di un tale funzionalità ..

È stato utile?

Soluzione

Lo faccio tutto il mio WPF utilizzando il Model-View-ViewModel modello. Ti ho dato un collegamento lì, ma Google vi darò carichi. MVVM sembra essere il modello standard per WPF. Questo progetto è probabilmente più complicata di quanto è necessario, ma è ben scritto e porta a casa l'uso di MVVM.

In sostanza, si crea un modello dei dati. In questo caso, si sarebbe probabilmente creare una semplice classe (lo chiamerò ToDoItem) con proprietà Id, UserID e descrizione. Usa il tuo meccanismo preferito per ottenere una raccolta di questi dal database. Collegamento a SQL, Entity Framework, una query standard, qualunque sia.

Poi avete il vostro ViewModel - si dispone di un'istanza del ViewModel per ogni istanza del Modello: VM ha un riferimento alla M e le proprietà 'in avanti' ad esso. Il ViewModel è quello che si usa per manipolare il modello.

Allora avete la vostra vista - questo è l'interfaccia utente. È possibile impostare il DataContext della vista per essere il ViewModel e poi le associazioni associare automaticamente al ViewModel. La vostra vista appena finisce per essere le cose che si possono vedere. Tutto il lavoro viene fatto nel ViewModel. Questo significa che è molto facile da prova.

Quindi, quando si fa clic su un pulsante nel vostro vista, le associazioni passare questo su un comando nel ViewModel che manipola il modello.

L'interfaccia utente è anche una vista con un ViewModel. Quindi, l'interfaccia utente VM potrebbe caricare una collezione di modelli dal database e li bastone in un ObservableCollection. La collezione elementi ListBox sarebbe legato a questa ObservableCollection.

E 'difficile da spiegare tutto questo in un post come questo. Leggere un paio di articoli e vedere cosa ne pensi. Sono ancora abbastanza nuovo a questo, anche, ma credo che la mia lettura su MVVM ha dato i suoi frutti.

Altri suggerimenti

Hela Thomas, Tom qui da Orbit One:)

MVVM è la strada da percorrere. Sono sulla mia 4 ° progetto e WPF brilla davvero se si utilizza MVVM. È già provato MVC (o MVP come abbiamo fatto Recy * pneumatici) e questo è un bel distacco di preoccupazione. MVVM prende un ulteriore passo avanti dal momento che il ViewModel sa assolutamente nulla circa la vista.

La vista si lega al ViewModel, quindi ha un riferimento ad esso (2 vie, super potente e lavora al di là del tipico demo MS). Il ViewModel è solo un poco ed è una rappresentazione della visualizzazione, i dati + comportamento. Una volta che si scava questo paragrafo l'MVVM fresca termine non avrà più segreti.

Vedo se riesco a venire con una piccola demo. Forse avrò tempo dopo. Quello che si presenti con una vista (XAML, file di 1) che si lega ad un ViewModel (file 2, una classe poco, da non confondere con il codice dietro). Il modello può essere quello che vuoi (livello di servizio o direttamente ai repository). Utilizzando la potenza di 2 modo vincolante saremo legarsi ad una collezione osservabile il che significa che se si aggiunge / delete / ... qualcosa per la collezione vista sarà raccoglierlo senza metterci l'energia in esso.

I miei primi 2 progetti di WPF è stato fatto con Caliburn Micro (vedi CodePlex), che è un potente framework basato su convenzioni. Ti protegge da WPF Hardcore (la creazione di proprietà di dipendenza giro voi stessi principalmente) ed è possibile creare qualcosa di relativamente veloce senza WPF comprendere pienamente. Questo è un aspetto negativo di per sé, ma ha funzionato per me. A partire dal progetto di 3 ho iniziato a domare quelle proprietà di dipendenza me stesso e che vi farà una migliore sviluppatore WPF.

vedo la questione è da ottobre .. hai trovato una buona soluzione?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top