我目前正在收到错误,并且不确定如何绕过它。 我有一个ICollectionView,我正在尝试过滤,并且能够这样做,一次只有一个过滤器。
用户是我的列表(t)
collectionView.Filter = Function(m) DirectCast(m, user).firstname().Contains(txtFilter.Text() _
)
当我尝试多个过滤器时,就像这样......
collectionView.Filter = Function(m) DirectCast(m, user).accountname.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).firstname.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).lastname.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).isenabled.ToLower.ToString.Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).description.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).lastlogontimestamp.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).whencreated.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).whenchanged.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).oulocation.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).co.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).l.ToLower().Contains(txtFilter.Text.ToLower() _
OrElse DirectCast(m, user).state.ToLower().Contains(txtFilter.Text.ToLower() _
))))))))))))
我得到一个例外,我不明白为什么......
Conversion from string to type 'Boolean' is not valid.
我已经使用Linq解决了这个问题,它有点慢,但它确实有效。
result = ocList.Where(Function(w) w.accountname.Contains(txtFilter.Text) _
Or w.firstname.Contains(txtFilter.Text) _
Or w.lastname.Contains(txtFilter.Text) _
Or w.isenabled.Contains(txtFilter.Text) _
Or w.description.Contains(txtFilter.Text) _
Or w.lastlogontimestamp.Contains(txtFilter.Text) _
Or w.whencreated.Contains(txtFilter.Text) _
Or w.whenchanged.Contains(txtFilter.Text) _
Or w.oulocation.Contains(txtFilter.Text) _
Or w.co.Contains(txtFilter.Text) _
Or w.l.Contains(txtFilter.Text) _
Or w.state.Contains(txtFilter.Text))
答案 0 :(得分:0)
将paren从结尾更改为每次调用结束,修复了问题。感谢