Re: List<MyClass> в ComboBox: SelectedIndex всегда -1, почем
От: J-Pro Молдова  
Дата: 01.06.09 14:12
Оценка:
Здравствуйте, J-Pro, Вы писали:

JP>Всем добрый день!


JP>Столкнулся с проблемой, не могу понять в чём дело.


JP>Имеется такая структура:

JP>
JP>public interface IMyBaseClass
JP>{

JP>}

JP>public class MyBaseClass : IMyBaseClass
JP>{
JP>   protected DataRow dataRow = null;

JP>   public MyBaseClass() { }

JP>   public MyBaseClass(DataRow dr)
JP>   {
JP>      this.dataRow = dr;
JP>   }

JP>   protected T GetFieldValue<T>(String fieldName)
JP>   {
JP>     ...
JP>   }

JP>   protected void SetFieldValue<T>(String fieldName, T val)
JP>   {
JP>     ...
JP>   }
JP>}

JP>public class MyClass : MyBaseClass
JP>{
JP>   public string Note1
JP>   {
JP>       get { return GetFieldValue<string>(COLNAME_NOTE1); }
JP>       set { SetFieldValue<string>(COLNAME_NOTE1, value); }
JP>   }

JP>   public override String ToString()
JP>   {
JP>       return Note1;
JP>   }
JP>}
JP>


JP>Далее: где-то есть метод, который возвращает мне List<MyClass> myClassList. Так же есть у меня ComboBox: cBox. Что я делаю:

JP>
JP>cBox.DataSource = myClassList;
JP>

JP>В этот момент вызывается хэндлер cBox_SelectedIndexChanged, НО при этом cBox.SelectedIndex равен -1. При том, что список элементов приходит нормальный(3 элемента, нормально инициализированных).

JP>Я решил, что это может быть потому, что у меня не переопределён метод int GetHashCode() в MyClass, но и это не помогло(я возвращал там "ToString().GetHashCode();").


JP>Посоветуйте, что делать, пожалуйста. Я чувствую что чего-то не хватает, но чего?


JP>Спасибо заранее!


Ну вот, так всегда бывает. Трахаешься целый день, не находишь решения, потом тратишь минут 10 на описание проблемы в форуме, постишь и через полчаса сам находишь проблему Так и тут. В общем, свойство Note1 всегда было null. Неверное поле брал я из DataRow, вот и всё. Элемент не мог отобразиться, вот вам и -1 в SelectedIndex.

Всем спасибо!
-= J-Pro =- with respect
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.