Bonjour,
j'ai crée une SortableBindingList<T> qui surcharge BindingList<T>
IBindingListView et je voudrais ajouter le filtrage.
Dans le fonction qui filtre j'appelle ma liste comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 filterPredicate = DynamicLinq.ParseToFunction<T, Boolean>(filterClause); foreach (T element in original.Where<T>(filterClausePredicate)) Items.Add(element);
où:
filterClause est la chaine qui contient "la requête"
filterClausePredicate est de Type Func<T,bool> que je construit
mon problème est que les expressions de System.Linq.Expressions ne contiennent pas le Like pour pouvoir faire A LIKE %B% donc je dois l'ajouter moi même.
j'ai fais ceci:
quand j'execute j'ai l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static Expression<Func<String, String, bool>> Like() { return (item, search) => item.ToLower().Contains(search.ToLower()); } static Expression ELike(Expression lhs, Expression rhs) { return Expression.Call(typeof(PostfixExpressionToLambda<>), "Like", new Type[] { typeof(Expression), typeof(Expression }, new Expression[] { lhs, rhs}); }
Quelqu'un pourrait me dire où est l'erreur?Like' sur le type PostfixExpressionToLambda`1[T]' n'est compatible avec les arguments fournis
Merci d'avance
Partager