Bonjour,

Je cherche à faire une classe de critère générique.

Voici quelques exemples de comment je souhaiterais l'instancier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
MonCritereComparaison<Document> critere = new MonCritereComparaison<Document>(o=>o.Numero,Comparaison.Egal,"BL001");
MonCritereComparaison<Document> critere = new MonCritereComparaison<Document>(o=>o.Date,Comparaison.Inferieur,DateTime.Today.AddDays(-30));
Voici le constructeur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
public class MonCritereComparaison<T> where T : class
{
        public MonCritereComparaison(Expression<Func<T>> propertyLambda, ComparisonOperator comparisonOperator, object value)
        {
....
        }
}
Je me suis basé sur des codes utilisés pour les notifications de NotifyPropertyChanged que voici:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
protected void RaisePropertyChanged<T>(Expression<Func<T>> action)
{
      var propertyName = GetPropertyName(action);
      RaisePropertyChanged(propertyName);
}
private static string GetPropertyName<T>(Expression<Func<T>> action)
{
      var expression = (MemberExpression)action.Body;
      var propertyName = expression.Member.Name;
      return propertyName;
}
qui permet de lever l'évènement de PropertyChanged de la façon suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 RaisePropertyChanged(() => MyProperty);
Cependant, je n'arrive pas à implémenter mon constructeur, puisqu'intellisense ne me propose aucune propriété de la classe Document.
Qu'est ce que j'ai manqué dans ce code?

Merci d'avance.