Перейти к содержимому


MultiCAD.NET задание свойств объеку

.NET CustomObjectBase

Сообщений в теме: 3

#1 Vovan83

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
  • Пол:Мужчина

Отправлено 02 Апрель 2014 - 19:11

Подскажите пожалуйста как задать свойство объекту для возможности выбора значений из выпадающего списка(ComboBox объект). Во встроенном примере только String объект. вот кусок кода из примеров
  [DisplayName("Текстовая метка")]
  [Description("Описание метки")]
  [Category("Тектовый объект")]
  public String Text{get ; set}


#2 macrodaemon

    Гуру MultiCAD API

  • nanoSoft
  • PipPip
  • 18 сообщений
  • Пол:Мужчина

Отправлено 03 Апрель 2014 - 07:36

Через атрибут TypeConverter

    /// <summary>
    /// TypeConverter для списка должностей
    /// </summary>

    class MCETypeConverter : StringConverter
    {
	    /// <summary>
	    /// Будем предоставлять выбор из списка
	    /// </summary>
	    public override bool GetStandardValuesSupported(
		    ITypeDescriptorContext context)
	    {
		    return true;
	    }
	    /// <summary>
	    /// ... и только из списка
	    /// </summary>
	    public override bool GetStandardValuesExclusive(
		    ITypeDescriptorContext context)
	    {
		    // false - можно вводить вручную
		    // true - только выбор из списка
		    return false;
	    }
	    /// <summary>
	    /// А вот и список
	    /// </summary>
	    public override StandardValuesCollection GetStandardValues(
		    ITypeDescriptorContext context)
	    {
		    YourEntity obj = context.Instance as YourEntity;
		    if (obj != null)
		    {
			    return new StandardValuesCollection(obj.TextVariantes);
		    }
		    return null;
	    }
    }
.....

[TypeConverter(typeof(MCETypeConverter))]
  public String Text2
{
   get
    {
       return _Text2;
    }
   set
   {
     if (!TryModify()) return;//без этого не будет сохранятся Undo и перерисовыватся объект
      _Text2 = value;
   }
}

Не забывайте что в методе set надо вызывать TryModify для корректной перерисовки и записи Undo состояния объекта

#3 Vovan83

    Новичок

  • Пользователи
  • Pip
  • 3 сообщений
  • Пол:Мужчина

Отправлено 05 Апрель 2014 - 11:01

Спасибо все работает, а как добавить картинку в выпадающий список на примере выпадающего списка с типом линий Ncad.

#4 macrodaemon

    Гуру MultiCAD API

  • nanoSoft
  • PipPip
  • 18 сообщений
  • Пол:Мужчина

Отправлено 05 Ноябрь 2014 - 11:52

с картинками увы не получиться. Типы линий - это специальный нативный тип контрола в каде.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей