Как видно из названия, у меня проблема с фильтром с ICollectionView.ICollectionView FIlter throws NullReferenceException при фильтрации столбцов с некоторыми пустыми ячейками
В основном у меня есть текстовое поле. Когда я ввожу письмо в этот TextBox, фильтр запускается (благодаря INotifyPropertyChanged). В результате содержимое, отображаемое ICollectionView, сужается, чтобы соответствовать тому, что было напечатано. Вернее, это сужает содержание, отображаемое в том, что привязано к ICollectionVIew. i.e ListBox, DataGrid ...
Ниже приведено свойство TextBox, с которым связан фильтр.
// This is a property bound to a TextBox meant to Search the First Name of a person
private string _searchFirstName
public string SearchFirstName
{
get
{
return _searchFirstName;
}
set
{
_searchFirstName= value;
OnPropertyChanged("SearchFirstName");
// After any changes have been made, the filter is fired.
PrincipalView.Filter = PrincipalFilter;
}
}
Затем идет фильтр, который уволен собственностью.
private bool PrincipalFilter(object item)
{
// principal is the name of the table back in my relational database (MySQL)
principal principal = item as principal;
return principal.FirstName.Contains(SearchFirstName)
}
Вы видите, что вышеуказанные работы прекрасны по той простой причине, что все имеют свое имя. Таким образом, при каждой записи/строке, введенной внутри принципала таблицы, в столбце FirstName никогда не будет пустой или пустой ячейки. Однако то же самое нельзя сказать о столбце для второго имени или в WorkPhone.
Так что, когда я добавить «SearchSecondName» свойство, например, где не все в таблице имеет второе название (то есть. Некоторые из клеток в фактическом соответствующем столбце таблицы пусты), я получаю NullReferenceException выброшен каждый раз в реальном фильтре. Поэтому я не могу отфильтровать ICollectionView на основе этих полей, даже если это необходимо.
Мне бы очень хотелось иметь возможность фильтровать информацию, используя эти столбцы, но, похоже, не может найти способ обойти ее. Любая помощь в получении этого будет очень признательна.
Возникает ли 'NullReferenceException' в вашем коде или из коллекции или кода WPF? –
@AdamHouldsworth Это происходит на самом фильтре. В разделе: «return main.SecondName.Contains (SearchSecondName)» – Offer