C #: привязка хэш-таблицы к вопросу о поле со списком - PullRequest
0 голосов
/ 21 октября 2009
    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 = ...???;

Здесь bindFontTypes - BindingSource. availableFonts - это Hashtable, где Keys - это строки, а Values ​​- объекты FontType. Для comboFontType.DisplayMember я хочу использовать свойство объектов .DisplayName. Как мне это указать? Возможно ли это?

Ответы [ 2 ]

1 голос
/ 21 октября 2009

Используя DisplayMember = "Value.DisplayName" я получаю последний добавленный в Hashtable ... Я работаю над тем, чтобы получить их все ....

Это то, что я сделал ... но привязал только последний элемент в Hashtable ....

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";
1 голос
/ 21 октября 2009

Может работать, если вы установите

comboFontType.DisplayMember = "Value";  // FontType

и перегрузка ToString() для FontType.

В качестве альтернативы для ToString () вы можете обрабатывать событие Format в выпадающем списке.

Но я даже не уверен, работает ли привязка данных таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...