Пояснение
IndexOf()
ищет среди своих предметов.При создании нового элемента:
ItemWorker item = new ItemWorker
{ Id = contract.Worker, FullName = contract.WorkerNavigation.FullName };
Оба значения одинаковы, но адрес памяти отличается.Один принадлежит ComboBox.DataSource
, другой нет.Поэтому вернул -1
.
Решение
В моем случае я сделал следующее:
public static string GlueTogether(int id, string fullName)
{
return String.Format("{0} - id: {1}", fullName, id);
}
public static string Parse(string fullName)
{
return fullName.Substring(0, fullName.IndexOf(" - id:"));
}
DisplayMember
похоже на текст "Name - id: 10"
.И найди:
cbWorker.FindString(cbWorker.SelectedText);