Доброго времени суток.
Есть такая проблемка:
Есть некие классы, к примеру
public class Gender
{
private int id_gender;
private string gender_value;
public int Id_gender
{
get{return id_gender;}
set{id_gender = value;}
}
public string Gender_value
{
get{return gender_value;}
set{gender_value = value;}
}
public Gender(int Id, string Value)
{
id_gender = Id;
gender_value = Value;
}
}
public class Person
{
private string person_name;
private long id_gender; // другой тип!!!
public long Id_gender
{
get{return id_gender;}
set{id_gender = value;}
}
public string Person_name
{
get{return person_name;}
set{person_name = value;}
}
}
public class PersonForm: Form
{
private ArrayList genderList = new ArrayList(new Gender[2]{new Gender(0, "Муж"), new Gender(1, "Жен") });
private Person person;
...
public void Init
{
comboBox1.DataSource = genderList;
comboBox1.DisplayMember = "Gender_value";
comboBox1.ValueMember = "Id_gender";
Binding b = new Binding("SelectedValue", person, "Id_gender");
b.Parse += new ConvertEventHandler(Parse);
b.Format += new ConvertEventHandler(Format);
comboBox1.DataBindings.Add(b);
}
...
}
Почему-то при уходе с комбобокса, если выбрано "Жен", значение меняется на "Муж"

.
В Parse делаю
e.Value = ConvertTo.Int64(e.Value);
В Format делаю
e.Value = ConvertTo.Int32(e.Value);
Проще конечно сделать один и тот же тип в обоих классах. Тогда все будет работать и без Parse, Format. Но все-таки непонятно где тут лежит собака.
Есть подозрение, что я в Format что-то неправильно делаю. Ведь SelectedValue.GetType()==typeof(Object), а Object ссылочный тип.
Вопщем я совсем запутался

Извините за длинное письмо