2010-04-08 6 views
1

Je cherche un moyen de maintenir facilement une liste d'utilisateurs appartenant à un groupe particulier.
J'ai pensé utiliser une liste de sélection, où j'ai 2 listes de sélection, la première contient une liste d'utilisateurs et la seconde une liste d'utilisateurs appartenant au groupe. Il y aura des boutons pour permettre l'ajout et la suppression des utilisateurs sélectionnés du groupe. Au fur et à mesure que les utilisateurs sont ajoutés, ils passent de la liste de gauche à la droite, puisqu'ils sont supprimés, ils sont déplacés de la droite vers la liste. C'est une situation assez commune. Connaissez-vous des exemples de cela dans WPF en utilisant le modèle MVVM?WPF MVVM Picklist Exemple

J'ai de la difficulté à comprendre comment la liaison peut fonctionner avec mon modèle View et les entités commerciales. Surtout persistant les données à la base de données. J'utilise des appels de procédure stockée pour faire la logique CRUD, donc j'ai besoin de garder une liste des utilisateurs qui ont été supprimés afin que je puisse les supprimer.

Est-ce la meilleure façon d'exécuter cette fonctionnalité ou existe-t-il un meilleur moyen. Je veux simplement choisir parmi une liste (la liste peut être grande).

Répondre

1

Cela devrait être simple à mettre en œuvre. Dans votre modèle de vue, créez deux propriétés de collection observables, l'une contenant les utilisateurs ne faisant pas partie du groupe et l'autre contenant les utilisateurs. Créez également des propriétés d'élément sélectionné pour chaque collection. Liez les propriétés des contrôles 'ItemsSource et SelectedItem à ces propriétés. Puis, implémentez des commandes qui suppriment l'élément sélectionné d'une collection et l'ajoutent à l'autre, puis liez ces commandes à vos boutons.

La manière la plus simple de garder trace des utilisateurs qui ont été supprimés est de ne pas le faire. Lorsque vient le temps de mettre à jour la base de données, comparez le contenu des collections de votre modèle de vue avec ce qui se trouve dans votre base de données. Si un objet se trouve dans votre collection "not in group" et que la base de données pense que c'est dans le groupe, supprimez-le. Si un objet se trouve dans votre collection "dans le groupe" et que la base de données ne le pense pas, ajoutez-le

+0

Merci d'avoir répondu à cette question: Ai-je raison d'appeler ce type de contrôle une "liste de choix" ou existe-t-il un terme approprié? – Tim