locked
Как добавить бизнес-объект в коллекцию элементов ListBox и отобразить ожидаемый текст? RRS feed

  • Общие обсуждения

  • Самый распространенный путь достичь этого установите DisplayMember в имя атрибута вашего бизнес-объекта. Второй способ заключается в использовании TypeConverter для конвертации бизнес-объектов. Вам понадобится пользовательский TeypeConverter и перегруженный метод ConvertTo. Проверьте следующий код:

     

    Code Block
        [TypeConverter(typeof(BusinessTypeConvert))]
        class BusinessObject
        {
            int id;
     
            public int Id
            {
                get { return id; }
                set { id = value; }
            }
     
            string name;
     
            public string Name
            {
                get { return name; }
                set { name = value; }
            }
        }
     
        class BusinessTypeConvert :TypeConverter
        {
            public override object ConvertTo(ITypeDescriptorContext context, 
                  System.Globalization.CultureInfo culture, object value, Type destinationType)
            {
                if (destinationType == typeof(string))
                    return ((BusinessObject)value).Name;
                return base.ConvertTo(context, culture, value, destinationType);
            }
         }
    

     

    Третий способ заключается в перегрузке метода ToString вашего бизнес-объекта и возвращение ожидаемого текста в данном методе. Но это не рекомендуется так как метод ToString обычно используется для возвращения некоторой информации о классе.
    Для связи [Mail]
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 23:14 MSDN Forums consolidation (От:Разработка Windows-приложений)
    24 марта 2010 г. 16:16
    Модератор