DropDown and IEquatable

I am really baffled by this problem. I am trying out the Radzen drop-down and have one working - a simple list of strings:
<RadzenDropDown AllowClear="false" AllowFiltering="false"
TValue="string" Data="@RequestTypes" @bind-Value="@SelectedRequestType"
Class="w-100" />
RequestTypes is of type List. All is fine.
But, this crashes the browser/program under VS2019, and using v3.18.8:
<RadzenDropDown AllowClear="false" AllowFiltering="false"
TValue="int" Data="@Departments" @bind-Value="@SelectedDepartmentID"
TextProperty="Name" ValueProperty="ID"
Class="w-100" />
This is Department:
public class Department : IEquatable
{
public int ID { get; set; }
public string Name { get; set; }
public int ApproverID { get; set; }
public Boolean IsActive { get; set; }

#region IEquatable
public bool Equals(Department other)
{
  return other != null && ID == other.ID;
}
public override bool Equals(object obj)
{
  return Equals(obj as Department);
}
public override int GetHashCode()
{
  return this.GetHashCode();
}
#endregion

}

I can not understand what I am doing wrong here...
STOP PRESS: I have just decided to try commenting out the IEquatable part - now it works!
Is this a problem?

Hey @J_Stewart,

This code:

public override int GetHashCode()
{
  return this.GetHashCode();
}

is endless loop.

Also please format your code when posting in the future.

Yikes, so it is - sorry for wasting your time, but thanks for spotting. It was a recent change in an attempt to solve another problem. I didn't expect the code to look quite as messy as it does - will def avoid this in future.
Thanks again, James.