Добрый день столкнулся с такой проблемой: функция IndexOf класса ObservableCollection всегда возвращает -1.
Вот код:
ObservableCollection
Пример класса Item:
public class Item : INotifyPropertyChanged
{
string _Text;
public string Text
{
get { return _Text; }
set
{
_Text = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Text"));
}
}
bool _IsSelected;
public bool IsSelected
{
get { return _IsSelected; }
set
{
_IsSelected = value;
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("IsSelected"));
}
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
}
В FilterMask появляются дубликаты, чего не должно быть согласно коду=)
Ответ
Разумеется, возвращает -1.
Ты создаёшь новый объект класса Item и ищешь его в коллекции. Он туда ещё не добавлен. Если ты хочешь, чтобы твой код работал, перегрузи в Item методы Equals и GetHashCode. Или полноценно реализуй интерфейс IEquatable
Комментариев нет:
Отправить комментарий