Pregunta

    public class FontType
    {
        ...
        public String Name { get { return _name; } }
        public String DisplayName { get { return _displayName; } }
        public Font UseFont { get { return _font; } }
    }


bindFontTypes.DataSource = availableFonts;
comboFontType.DataSource = bindFontTypes;
comboFontType.ValueMember = "Key";
comboFontType.DisplayMember = ...???;

Aquí, bindFontTypes es BindingSource. availableFonts es una Hashtable donde las claves son cadenas y los valores son objetos de FontType. Para comboFontType.DisplayMember quiero usar la propiedad '.DisplayName de los objetos. ¿Cómo especifico eso? ¿Es posible?

¿Fue útil?

Solución

Podría funcionar si configuras

comboFontType.DisplayMember = "Value";  // FontType

y sobrecarga ToString () para FontType .

Como alternativa para ToString (), puede controlar el evento de Formato del cuadro combinado.

Pero ni siquiera estoy seguro de si el enlace de datos funciona de esta manera.

Otros consejos

Al usar DisplayMember = " Value.DisplayName " obtengo el último agregado a la Hashtable ... Estoy trabajando para conseguirlos todos ...

Esto es lo que hice ... pero solo obtuve el último elemento de Hashtable para enlazar ...

BindingSource src = new BindingSource();
            src.DataSource = new Hashtable 
            { 
            {
                "blah", 
                new FontType 
                { 
                    Name = "newFont", 
                    DisplayName = "new Font" 
                } 
                },
                { 
                    "another", 
                    new FontType 
                    {
                        Name = "anotherFont",
                        DisplayName = "another Font" 
                    } 
                    } 
            };
            comboBox1.DataSource = src;
            comboBox1.ValueMember = "Key";
            comboBox1.DisplayMember = "Value.DisplayName";
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top