Как связать SelectedItem ComboBox с объектом, который является копией элемента из ItemsSource?

Я использую шаблон MVVM с WPF и столкнулся с проблемой, которую я могу упростить до следующего:

У меня есть модель CardType.

public class CardType
{
    public int Id { get; set; }
    public string Name { get; set; }
}

И у меня есть viewmodel, которая потребляет CardType.

public class ViewModel : INotifyPropertyChanged
{
    private CardType selectedCardType;
    public CardType SelectedCardType
    {
        get { return selectedCardType; }
        set
        {
            selectedCardType = value;
            OnPropertyChanged(nameof(SelectedCardType));
        }
    }

    public IEnumerable<CardType> CardTypes { get; set; } 

    // ... and so on ...
}

Мой XAML имеет ComboBox, который основывает свои элементы на CardTypes и должен предварительно выбрать элемент на основе SelectedCardType.

<ComboBox ItemsSource="{Binding CardTypes}"
          DisplayMemberPath="Name"
          SelectedItem="{Binding SelectedCardType}"/>

По независящим от меня причинам объект SelectedCardType будетсправочно-неравная копия элемента в CardTypes. Поэтому WPF не удается сопоставить SelectedItem с элементом в ItemsSource, и когда я запускаю приложение, сначала появляется ComboBox без выбранного элемента.

Я попытался переопределить методы Equals () и GetHashCode () для CardType, но WPF по-прежнему не соответствует элементам.

Учитывая мои специфические ограничения, как я могу заставить ComboBox выбрать правильный элемент?

Ответы на вопрос(3)

Ваш ответ на вопрос