开发者

Should a User Control's Controls be backed by Properties?

开发者 https://www.devze.com 2022-12-19 20:08 出处:网络
Hopefully I am stating that right.I have a WinForm(3.5) app that has 1 Form that is broke into 开发者_运维百科two regions.1 is the Navigation and the other, a Panel, is the Content.You select what you

Hopefully I am stating that right. I have a WinForm(3.5) app that has 1 Form that is broke into 开发者_运维百科two regions. 1 is the Navigation and the other, a Panel, is the Content. You select what you want in the Navigation Portion, i.e. Demographics, and then it embeds a UserControl containing all the Demographics controls in the Panel.

What I am asking is if each User Control should have a Property for each Control on it. Example: ucDemographics has a textbox, named txtCity. Should there be a Property to store the value of txtCity and allow my Form and other User Controls to access it?

Is that the generally accepted 'Best Practice'?

If not, what is?


It depends on what you want to achieve with your UserControl.

Normally you wouldn't expose the txtCity because the caller could manipulate everything about the textbox then. In most scenarios, you would only expose the current text á la

public string CityText
{
    get { return this.txtCity.Text; }
}


No, that's not really a best practice. The intention of a user control is to compose a new control with its own behavior. You should at most have "several" properties, methods and events that are public and allows a form to interact with the new control. If you find that the only good way to work with it is by exposing its constituent controls that you're better off not using a UserControl but just place the controls on the form directly.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号