Hi,
I suspect that the property should be of only one type for it to work
correctly. You can't parameterize its type (the type needs to be fixed at
design-time).
--
Teemu Keiski
MCP, Microsoft MVP (ASP.NET), AspInsiders member
ASP.NET Forum Moderator, AspAlliance Columnist
"Simbad" <> wrote in message
news:094a01c3d918$73f0a8a0$...
>I have a control 'MyControl' with a property of
> type 'MyObject'. MyObject has a property 'MyField' that
> is a enum type. I want the type of enum to vary
> depending on a another property of MyObject
> called 'MyFieldType'. E.g. if MyFieldType = TypeA,
> MyField returns EnumA. See code below:
>
> public enum FieldTypes
> {
> TypeA,
> TypeB
> }
>
> public enum EnumA
> {
> Big,
> Medium,
> Small
> }
>
> public enum EnumB
> {
> Short,
> Tall,
> Squat,
> Huge
> }
>
> [DefaultProperty("MyFieldType")]
> public class MyObject
> {
> private FieldTypes m_MyFieldType;
> private object m_MyField = 0;
>
> public FieldTypes MyFieldType
> {
> get {return m_MyFieldType;}
> set {m_MyFieldType = value;}
> }
>
> public object MyField
> {
> get
> {
> if (MyFieldType == FieldTypes.TypeA)
> {
> return (EnumA)m_MyField;
> }
> else
> {
> return (EnumB)m_MyField;
> }
> }
> set
> {
> m_MyField = value;
> }
> }
> }
>
>
> My problem is that the MyField property is not editable
> via a dropdown list in the designer. It appears as a
> greyed-out (read only) string representation of the
> respective enum (EnumA or EnumB). I've tried writing a
> TypeConverter (inheriting from EnumConverter) but just
> ended up going round in circles.
>
> Does anyone have an example of what I'm trying to do or
> point me in the right direction?
>
> Thanks
|