Есть UserControl у которого есть свойство типа List<MyClass>.
List<MyClass>
{
get
{
return _myClassesList;
}
}
Хочу редактировать его в дизайнере, после помещения контрола на форму.
Свойство в дизайнере видно, при редактировании открывается стандартный дизайнер колекций, где можно добавлять и редактировать элементы списка, но они не сохраняются, после закрытия дизайнера.
Как с этим бороться?
... << RSDN@Home 1.2.0 alpha rev. 787>>
Здравствуйте, OrSol, Вы писали:
OS>Есть UserControl у которого есть свойство типа List<MyClass>.
OS>OS>List<MyClass>
OS>{
OS> get
OS> {
OS> return _myClassesList;
OS> }
OS>}
OS>
OS>Хочу редактировать его в дизайнере, после помещения контрола на форму.
OS>Свойство в дизайнере видно, при редактировании открывается стандартный дизайнер колекций, где можно добавлять и редактировать элементы списка, но они не сохраняются, после закрытия дизайнера.
OS>Как с этим бороться?
хм...
List<<MyClass>
{
get
{ return _myClassList; }
set { _myClassList=value; }
}
Здравствуйте, DrWolf, Вы писали:
DW>хм...
DW>DW>List<<MyClass>
DW>{
DW>get
DW>{ return _myClassList; }
DW>set { _myClassList=value; }
DW>}
DW>
эх, если б все было так просто. Так тоже не сохрняются изменения
... << RSDN@Home 1.2.0 alpha rev. 787>>
OS>Есть UserControl у которого есть свойство типа List<MyClass>.
OS>OS>List<MyClass>
OS>{
OS> get
OS> {
OS> return _myClassesList;
OS> }
OS>}
OS>
OS>Хочу редактировать его в дизайнере, после помещения контрола на форму.
Смотря кто такой MyClass. В общем случае есть два варианта — навесить на это свойство аттрибут [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] или [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]. Во втором случае нужно будет самостоятельно инициализировать ваш лист при создании компонента:
public class TestControl : UserControl
{
private List<MyClass> myList= new List<MyClass>();
Если класс MyClass не сериализуемый, то на него нужно будет навешивать аттрибут TypeConverter и привязывать к нему конвертер типа, который конвертит его в тип
InstanceDescriptor.
Если и этого не достаточно — реализуйте сериализацию как вам будет угодно через собственный сериализатор:
[DesignerSerializer(typeof(TestSerializer),
typeof(CodeDomSerializer))]
public class TestControl : Control