Question

Je me demandais s'il était possible d'appeler une méthode ou de mettre à jour une propriété sur mon objet ViewModel lorsque WPF est lié à l'objet?

La raison pour laquelle je souhaite procéder est que, lorsque mes objets viewModel sont créés, leur modèle de données ne contient qu'un ID utilisé pour interroger les données de la base de données lorsque cela est nécessaire. Ainsi, lorsque l'utilisateur accède à cet objet, je souhaite que la vue informe l'objet ViewModel qu'il est surveillé et, par conséquent, indique au modèle de données de mettre à jour ses valeurs à partir de la base de données et de placer mon objet ViewModel dans un état de chargement

Si les objets ViewModel savaient se mettre à jour lorsqu'ils étaient affichés à l'écran, je pouvais éviter d'avoir à actualiser manuellement tous les objets.

Merci!

Était-ce utile?

La solution

Lorsque WPF se lie à l'objet dans votre ViewModel, il utilisera le getter de propriétés pour récupérer la valeur.

On dirait que vous essayez d’utiliser une évaluation paresseuse - il suffit de demander au getter d’instancier paresseusement les informations du DB:

private int entityId; // Set in advance
private Entity entityToFetch; // Will be fetched lazily

public Entity EntityToFetch
{
    get 
    {
        if (this.entityToFetch == null) // || this.entityToFetch.Id != this.entityId) - add this if you're letting this change at runtime...
        {
            this.entityToFetch = DataAccessLayer.FetchEntityForId(this.entityId);
        }

        return this.entityToFetch;
    }
}

Autres conseils

Vous pouvez ajouter à votre ViewModel une propriété Selected qui est définie lorsque l'objet est sélectionné. Lorsque Selected devient true, vous pouvez accéder à votre base de données.

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