IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Silverlight Discussion :

XAML, Template et MVVM


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 29
    Par défaut XAML, Template et MVVM
    Bonjour, une petite question technique me traverse l'esprit ...

    Je cherche à créer des UserControls génériques qui pourraient se créer un ViewModel (dont le type serait passé en tant que template) en tant que DataContext...

    Bref un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class CUserControl<T> : UserControl where T : ViewModel
    {
     private T _myViewModel;
     
     public CUserControl() {}
     ...
    }
    jusque là, pas trop de problèmes ... le hic c'est plutôt :

    Est ce que ca va marcher avec un déclaration en Xaml ?
    Est ce que quelqu'un a déjà fait un truc de ce genre ?


    merci !

  2. #2
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Silverlight ne supportant pas la markup-extension x:Type ça ne semble pas possible out-of-the-box.
    En revanche tu peux transmettre le nom pleinement qualifié du type en tant que String et utiliser la reflection pour l'instancier via Type.GetType(...).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 29
    Par défaut
    Bon j'ai fini par créer une classe intermédiaire avec un nom simple que je peux réutiliser en XAML ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    public class A : UserControl<C> {}
    public class MyControl : A { ... }
    comme ca je peux appeler en XAML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <local:A 
             x:Class="MyControl " ...>
             ...  
    </local:A>
    Et ca marche donc tant mieux !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XAML][Style/Template] Foreground ne s'applique pas
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 25/02/2011, 12h50
  2. [XAML][C#][MVVM] position dynamic de userControl sur une grille
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 28/09/2010, 18h01
  3. [MVVM][XAML] Problème de Selection d'une liste
    Par Monkey56 dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 24/09/2010, 13h25
  4. DataForm Template MVVM light
    Par pmorestin dans le forum Silverlight
    Réponses: 3
    Dernier message: 21/04/2010, 15h03
  5. [Xaml/C#:CustomControl] Comment accéder à des éléments du Template?
    Par SuprazZz dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 26/11/2008, 20h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo