Salut tout le monde,

Je dispose de deux class
- PersonEntity qui m'est renvoyée par la BLL de mon application
- PersonViewModel qui est de type INotifyPropertyChanged pour faire mon MVVM

Ma BLL me retourne un IEnumerbale<PersonEnity> et je veux afficher cela dans une list donc il faut que je transforme mon IEnumerbale<PersonEnity> en Observablecollection<PersonViewModel>.

Est ce qu'il existe un moyen simple de faire cela ou suis je obligé de faire un foreach de IEnumerbale<PersonEnity> pour reconstruire mon ObservableCollection ?

Merci d'avance pour votre aide




Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    public class PersonEntity
    {
        public String Name { get; set; }
    }

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class PersonViewModel : INotifyPropertyChanged
    {
        private readonly PersonEntity person;
 
        public PersonViewModel (PersonEntity person)
        {
            if (person== null)
                throw new NullReferenceException("person");
 
            this.person= person;
        }
 
        public String Name 
        {
            get { return this.person.Name; }
            set
            {
                this.person.Name = value;
                RaisePropertyChanged("Name");
            }
        }
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
        {
            var handler = this.PropertyChanged;
            if (handler != null)
            {
                handler(this, e);
            }
        }
 
        protected void RaisePropertyChanged<T>(Expression<Func<T>> propertyExpresssion)
        {
            var propertyName = PropertySupport.ExtractPropertyName(propertyExpresssion);
            this.RaisePropertyChanged(propertyName);
        }
 
        protected void RaisePropertyChanged(String propertyName)
        {
            VerifyPropertyName(propertyName);
            OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
        }
 
        /// <summary>
        /// Warns the developer if this Object does not have a public property with
        /// the specified name. This method does not exist in a Release build.
        /// </summary>
        [Conditional("DEBUG")]
        [DebuggerStepThrough]
        public void VerifyPropertyName(String propertyName)
        {
            // verify that the property name matches a real,  
            // public, instance property on this Object.
            if (TypeDescriptor.GetProperties(this)[propertyName] == null)
            {
                Debug.Fail("Invalid property name: " + propertyName);
            }
 
        }
    }       
 
 
  }