Bonjour,
voilà j'ai dans une base, une table "Property" qui contient :
- un champ Nom
- Un champ Type
- Un champ content
(et j'ai mon Model équivalent)
Le champ Type peut avec la valeur "Text", "DateTime", "MultiText", ...
Question : comment afficher dans ma Page, dans un formulaire, le champ associé (si type=Text => TextBox ; si type = DateTime => Calendrier ; ....)
Ma solution :
J'utilise le modèle MVVM que j’aimerai conserver...
Je pensais donc à une espece de factory genre :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public static class PropertyViewModelFactory { .... public static ViewModelBase getPropertyViewModel(Property property) { if (property.type == "Text") return new PropertyTextViewModel(property); if (property.type == "DateTime") return new PropertyDateTimeViewModel(property); } ... }
et dans mon fichier XAML j'aurai un truc genre :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <DataTemple DataType={x:Type local:PropertyTextViewModel}> ... <Label Content="{Binding Nom} /> <TextBox Text={Binding Content} /> .. </DataTemplate> // meme procédé pour les autres types...
qu'en pensez vous ? existe t'il une meilleur méthode ?
Merci de votre aide.
Partager