Siegeon
Siegeon

Reputation: 610

How to make dynamic user controls play nice with the designer

I have a dynamic user control that instantiates various bars and labels dynamically based on the number of members in a object group. This functionality works out very well, but the issue is that I am not the only developer on this project. I am new to the team and the "senior" members want all of the components to work in the designer. Since the components of the user control are generated at run time I am not sure how to go about making some/any of them show up in design view. Is this even an option?

Upvotes: 0

Views: 669

Answers (2)

xtrem
xtrem

Reputation: 1779

Why not give both the possibility of defining the number of dynamic controls at design time, and at run time?

  1. In your custom control class, you can define a property that specifies the number of controls. Implement adding/removing controls in the set{} method of this property.

  2. Make your property a "designer property". See http://msdn.microsoft.com/en-us/library/a19191fh.aspx

Keep in mind that the designer actually creates an instance of your class. Also, when a user changes your "property" in the designer, the set{} method is invoked.

I hope this helps

Upvotes: 1

James Johnson
James Johnson

Reputation: 46067

I don't think that's possible, because there is no markup for the designer to show. I find it hard to believe that they would expect dynamically created controls to show in the designer.

EDIT

Thinking about it some more, why don't you just add a few hard-coded instances of the control in the markup, with the ability to add/remove. That way, the control is displayed in the designer, but you can still add/remove instances. That would probably be the best compromise in this case.

Upvotes: 1

Related Questions