2010-06-24 5 views
0

Quelles sont les utilisations recommandées de IValueConverter? Je l'ai utilisé pour des choses comme la conversion d'une propriété booléenne à une propriété de visibilité, mais je me demande dans quelle mesure vous devriez le prendre? Est-il censé être seulement utilisé pour changer les représentations de types communs en types spécifiques à l'interface utilisateur (bool en Visibility par exemple).Que devez-vous utiliser IValueConverter for?

Par ex, si j'ai une propriété dans ma classe, EmployeeID, comme:

public class EmployeeViewModel : INotifyPropertyChanged 
{ 
    public int? EmployeeID 
    { 
    get 
    { 
     return employeeID; 
    } 
    set 
    { 
     employeeID = value; 
     RaisePropertyChanged("EmployeeID"); 
    } 
    } 
} 

et je veux afficher les détails de cet employé, par exemple Nom, emplacement mais pour obtenir ceux-ci je aurais besoin de frapper la base de données, serait-ce mal de mettre cela dans un convertisseur de valeur? Serait-il préférable de stocker les valeurs dans ViewModel et de les lier?

Répondre

2

Il serait probablement préférable de mettre les valeurs dans votre ViewModel et d'effectuer des liaisons directes. Alors que vous pourriez le faire dans le ValueConverter, vous avez une portée très limitée dans le convertisseur et cela peut limiter vos capacités. Ma règle générale pour moi-même est d'essayer de garder tous mes ValueConverters comme de simples conversions entre deux types, à savoir Bool to Visibility ou une couleur à un pinceau. De cette façon, je n'inclus pas beaucoup de logique dans les ValueConverters et garde tout plus simple à maintenir.

Questions connexes