Question

J'utilise une référence de service WCF dans un projet WPF, et mon cadre de l'entité réside modèle de données dans le projet WCF.

Et je me sers MVVM cadre clair. Je fais les choses suivantes:

  1. J'utilise LINQ dans le service pour obtenir des données, puis chercher dans WPF, obersvablecollections habituellement.
  2. Tout fonctionne en partie vue comme peuplant DataGrid, vues au besoin.

Mais j'ai des doutes suivants:

  1. Est-ce bon sens de transfert de données entre WCF et WPF.
  2. Je ne l'ai pas utilisé le modèle pour rien encore, je doute quand l'utiliser?
  3. Je voulais aussi enregistrer les données de DataGrid. Je suis en mesure de répercuter la ObservableCollection des données mises à jour de DataGrid à la fonction du service. Mais comment puis-je mettre à jour l'entité de cette collection? en boucle? ne marche pas son droit. Une fois que je mets à jour l'entité de cette collection, je pourrai utiliser saveChanges mettre à jour dans la base de données.
  4. Lorsque j'ai besoin pour afficher les données hiérarchisé dans un TreeView, où faire que hierarichal de données, à partir de xml procédure stockée? utiliser en vue de créer une colonne de critères de regroupement? créer cette colonne en service? créer cette colonne / propriété dans la présentation?
Était-ce utile?

La solution

1 -. Il n'y a pas de manière correcte, cela dépend de vos besoins et objectifs

2 - Avec MVVM, le modèle doit rester entre WPF et la base de données. Cela signifie que tous les appels à la base de données devrait passer par le modèle, et toutes les écritures à la base de données devrait également passer par le modèle. L'interface graphique WPF ne doit se lier au modèle. Cela signifie généralement que votre partie WPF se compose principalement d'un code XAML. Tout le code qui accède à la base de données devrait être dans le modèle.

Il y a de bonnes raisons pour séparer cela.

  • Vous pouvez écrire des tests unitaires sur le modèle.
  • Le modèle de vue est indépendant de l'apparence de l'interface graphique. Cela signifie que vous pouvez facilement changer l'interface graphique en laissant tomber dans différents composants et juste se lier au modèle.
  • Une recherche rapide Google peut sans doute donner plus de raisons.

3 - Je voudrais essayer d'envoyer plus seulement les entités qui ont changé. Cela peut être fait en passant la collection à votre modèle de vue, et que votre vue figure modèle ce qui a changé.

4 - Je ne comprends pas tout à fait ce que vous voulez faire. En général, pour faire un TreeView, vous devez créer HierarchicalDataTemplate pour chacun de vos modèles de vue. Le contrôle TreeView prendra soin du reste. Vous devriez vraiment faire quelques tutoriels sur celui-ci, car il est un peu difficile à envelopper autour de votre tête.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top