Как я могу создать пользовательский контроль со свойствами, установленными из Page, если это свойство является списком в asp.net? - PullRequest
0 голосов
/ 10 августа 2010

Я создаю usercontrol, который может отображать данные со многими флагами.Я хотел бы иметь возможность объявить это таким образом или что-то похожее на странице asp.net

<ctl:DisplayItem runat="server" id="ctlTest">
  <flags>
    <flagIsAvailable />
    <flagIsInError />
  </flags>
</ctl:DisplayItem>

В моем контроле флаги будут List(of PossibleFlags)

Public Enum PossibleFlags
  IsInError
  IsAvailable
End Enum

Public Property Flags as List(Of PossibleFlags)

Примечание. Если возможно, я также хотел бы знать, как это сделать для свойств пользовательского типа (не только списков или обобщений)

1 Ответ

0 голосов
/ 10 августа 2010

Добавьте что-то вроде этого под свой контроль. (Я взял его с одного из своих серверных элементов управления, поэтому может потребоваться рефакторинг, чтобы удовлетворить ваши потребности, но вы поймете, что идея)

Свойство:

        List<MyFlag> _flags = null;            

        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        [PersistenceMode(PersistenceMode.InnerProperty)]
        [NotifyParentProperty(true)]
        public List<MyFlag> Flags
        {
            get
            {                    
                if (_flags == null)
                {
                    _flags = new List<MyFlag>();                        
                }

                return _flags;
            }
        }

Класс:

        public class MyFlag
        {                       
            public bool FlagIsAvailable { get; set;}
            public bool FlagIsInError { get; set;}                      
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...