The RadioButton control works much like the CheckBox control—it provides the same properties, and the same events. The big difference between the RadioButton and CheckBox controls is that RadioButton controls are grouped by their container. Within a single container, you can generally only select one RadioButton control. If you place multiple RadioButton controls into multiple containers, you can select one RadioButton control from each container.
You can override this behavior using the GroupName property of the control. You can set this string value to create more than one group per container, or to create a single group that spans multiple containers. To demonstrate this behavior, select the RadioButton tab in the sample application, shown in Figure 1.
TIP: There’s no need to specify a GroupName property for a RadioButton control unless you want to override the default behavior.
Figure 1. RadioButton controls normally allow you to select only one per
container; override the behavior with the GroupName property.
The markup for the sample page looks like the following:
If you try out the demonstration, you’ll see that you can only select a RadioButton control from the group named Group 1, because they’re all in the same container. You can select only a single item from the group named Group 2, again, because they’re in the same container. You can also select one item from the group named Group 3, because these items have their GroupName property set to the same text (the text is arbitrary, and it’s set to
Group3 in the example). Because these controls share the same group name, and because they have a group name set, you can select multiple RadioButton controls within a single container.
In contrast, the right-hand Border control contains multiple CheckBox controls. Nothing keeps you from selecting as many CheckBox controls as you like. That’s the point: When you use RadioButton controls, you intend for users to select only one per group. When you use CheckBox controls, you intend users to select multiple items.
NOTE This sample uses a StackPanel control as the container for the
groups of RadioButton controls. You may also want to investigate
the GroupBox control, which not only groups the controls but
also adds a caption describing the group. The GroupBox control is,
effectively a simple container with a caption added.
This post is an excerpt from the online courseware Windows Presentation Foundation Using Visual C# 2010 course written by expert Ken Getz and Robert Green.
Ken Getz is a Visual Studio expert with over 25 years of experience as a successful developer and consultant. He is a nationally recognized author and speaker, as well as a featured instructor for LearnNowOnline.
Robert Green is a Visual Studio expert and a featured instructor for several of our Visual Basic and Visual C# courses. He is currently a Technical Evangelist in the Developer Platform and Evangelism (DPE) group at Microsoft. He has also worked for Microsoft on the Developer Tools marketing team and as Community Lead on the Visual Basic team. Robert also has several years of consulting experience focused on developer training, and is a frequent speaker at technology conferences including TechEd, VSLive, VSConnections and Advisor Live.