Проблемы с сохранением значения в свойтве контрола после ребилда

  • Автор темы Nikola
  • Дата начала
N

Nikola

#1
Привет всем. Столкнулся вот с такой проблемой.
Создаю новый UserControl. Кидаю на него label и объявляю свойство контрола Label.

[codebox]public partial class MyLabel : UserControl
{

[Browsable(true)]
[Category("Options")]
[Description("Лейбл")]
public Label Label
{
get { return label; }
set { label = value; }
}

public MyLabel()
{
InitializeComponent();
}
}[/codebox]
После этого добавляю созданный контрол на форму и в дизайнере меняю свойство MyLabel.Label.Text, например на "Все отлично". На форме котрол поменял текст.
Потом делаю Rebuild проекта и вижу, что значение сбросилось :) и там снова стоит надпись "Все хреново" :p .
Кто может подсказать в чем тут проблема?
Спасибо.

Потом делаю Rebuild проекта и вижу, что значение сбросилось ;) и там снова стоит надпись "Все хреново" :p .
Кто может подсказать в чем тут проблема?
Спасибо.
Только что увидел, что после изменения свойства MyLabel.Label.Text в самом коде дизайнера не добавляется это изменение :).

Если добавить такое свойство:
[codebox][Browsable(true)]
[Description("Текст лейбла")]
public string Text
{
get { return label.Text; }
set { label.Text = value; }
}[/codebox].
Изменить в дизайнере MyLabel.Text и перебилдидь, все отлично сохраняется.

Как это лечится?
 
N

Nikola

#3
Скорее всего придеться редактор свой к этому делу писать, и сам лабел создавать динамически, а не в дизайнере контрола. Короче мороки многовато. Проще дать доступ к свойсвам (как во 2 вар.), которые доступны пользователю. Не думаю что их много.
Да, для данного примера свойств мало. Но реально это нужно будет реализовать для разных контролов, которые могут содержать по несколько разных объектов (TreeList, ComboBox, CheckedListBox...). А если это будет мой собственный контрол ctrl1 который я положу на другой контрол ctrl2 и когда я добавлю к ctrl1 новое свойство prop1, мне прийдется переписывать ctrl2 добавляя свойство prop1. Получается не очень хорошо.
 
N

Nikola

#4
Nikola У вас с архитектурой не все в порядке, раз такие выкрутасы надо делать. Смотрите в сторону пересмотра ее.
Я не просил Вас рассматривать мою архитектуру, а попросил только помочь в решении проблемы. Архитектура нормальна.

Неужели никто больше с таким не сталкивался?