Bonjour,
Je n'arrive pas à faire le binding des elements d'une obserable collection dans un UserControl. J'obtiens cette collection d'un service WCF et je souhaiterai pouvoir afficher les éléments de cette liste dans des TextBlock (Titre, Texte...). J'arrive à le faire pour un DataGrid mais, ce n'est pas le résultat qu'il me faut. J'utilise MVVM light, et je suis perdu dans le mécanisme.
Je dois arriver à faire charger les donnée automatiquement au moment du chargement de la vue, et souvent les exemples que je trouve, partent d'un clic sur un bouton.
L'objectif est de pouvoir avoir à l'apparation de la vue le premier élément de la collection, puis avec des fleches pouvoir naviguer entre les éléments...
Voilà, j'aimerai avoir un coup de pouce, car je ne trouve pas de solutions.
Merci !
Methode retournant la collection
MainViewModel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 public ObservableCollection<Alert> GetAlertData() { try { ObservableCollection<Alert> AlertData = new ObservableCollection(); foreach (var item in service.GetActiveAlertTest()) { AlertData.Add(item); } return AlertData; } catch { return null; } }
Je ne sais pas quoi mettre dans la vue, j'ai tenté comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 public class MainViewModel : ViewModelBase { private readonly IDataService _dataService; ObservableCollection<Alert> _Alert; Alert _Alertd; public ObservableCollection<Alert> AlertData { get { return _Alert;} set { _Alert = value; RaisePropertyChanged("AlertData"); } } public Alert Alertd { get { return _Alertd;} set { _Alertd = value; RaisePropertyChanged("Alertd"); } } public MainViewModel(IDataService dataService) { _dataService=dataService; AlertData = new ObservableCollection<Alert>(); foreach (var item in _dataService.GetAlertData()) { AlertData.Add(item); } } }
Mais ça ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<Run Text="{Binding Path=Alertd.AlertTitle}"... />
Partager