Bonjour,
Je cherche à faire une classe de critère générique.
Voici quelques exemples de comment je souhaiterais l'instancier.
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:
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:
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:
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.
Partager