Представьте следующий сценарий: у меня есть DataGrid, который я привязал к списку, содержащему объекты.Каждый объект представляет строку с различными данными (имя, клиент, имя сервера и т. Д.) Теперь предположим, что возможно иметь идентичные объекты или строки (где имя, клиент, имя сервера и т. Д.) Идентичны.
Когда я связываю список с DataGrid, все работает нормально, и я могу перемещаться по сетке с помощью курсора.Однако, чтобы сделать UnitTests, я переопределил метод Equals для рассматриваемого объекта.Например:
public override bool Equals(object obj2)
{
ConnectionDestination compareObject = obj2 as ConnectionDestination;
if (compareObject == null)
{
return false;
}
if ((this.Kunde != compareObject.Kunde) || this.Filiale != compareObject.Filiale || this.Bez != compareObject.Bez ||
this.Username != compareObject.Username || this.Password != compareObject.Password)
{
return false;
}
}
public override int GetHashCode()
{
return this.Kunde.GetHashCode() ^ this.Bez.GetHashCode() ^ this.Filiale.GetHashCode() ^ this.Servername.GetHashCode() ^ this.Username.GetHashCode() ^ this.Password.GetHashCode();
}
Теперь проблема в том, что если у меня есть две абсолютно одинаковые строки и вызывается метод Equals, DataGrid запутывается и выбирает несколько строк, или становится еще более хаотичным, когда я перемещаюсь поgrid.
Таким образом, вопрос: есть ли способ сделать правильное равное сравнение, чтобы предотвратить возникновение таких проблем?