Я пытаюсь сохранить метаданные в своих элементах ComboBox, переопределяя ToString () в Dictionary <>. Тем не менее, мой переопределение ToString () не выполняется, и я не могу понять, почему. ComboBox отображает «(Коллекция)» вместо указанного мной значения. Не хватает ли шага, чтобы ComboBox использовал мой переопределение ToString ()?
public class ComboElement : Dictionary<string,object> {
protected string defaultkey = "";
public ComboElement( SqlDataReader sdr, string defkey )
: base() {
defaultkey = defkey;
for ( int field = 0; field < sdr.FieldCount; field++ ) {
this.Add( sdr.GetName( field ), sdr[field] );
}
}
public override string ToString() {
return "GLURP"; //
//if ( this.ContainsKey( this.defaultkey ) == true ) { return this[this.defaultkey].ToString(); } else return "";
}
}
Код для заполнения ComboBox в DropDown:
while ( sdr.Read() == true ) {
ComboElement ce = new ComboElement( sdr, "filename" );
string tstring = ce.ToString(); // Correct value
cmbFiles.Items.Add( ce ); // Displays "(Collection)"
}