Click here to Skip to main content
14,666,459 members
Rate this:
Please Sign up or sign in to vote.
I'm looking for a solution to dynamically load user controls based on the radio button selection. The problem is explained below.
1. I have a base window xaml (MainWindow). This has 2 Stack Panels, SP1 and SP2.
2. I have created 5 User Controls

2.1 Radio UC ==> 4 radio buttons.
2.2 Option-1 UC
2.3 Option-2 UC
2.4 Option-3 UC
2.5 Option-4 UC

3. The Radio UC is loaded in SP1 of the MainWindow in the design time.
4. Based on the selection of the Radio button, one of the 4 Option UC should be loaded dynamically in SP2

I'm clueless as I dont know WPF that well. Could anyone help me with this using WPF MVVM pattern.

Thanks in advance.

1 solution

Rate this:
Please Sign up or sign in to vote.

Solution 1

Hi TechBang, Please look at this example (But this is not in MVVM pattern, for the MVVM patter follow the link which I gave at last)

First of all as per you requirement I create a design page.
<grid showgridlines="True">
            <columndefinition width="200" />
            <columndefinition width="400" />
        <stackpanel name="SP1" grid.column="0">
            <radiobutton groupname="ControlLoad" name="btncontrol"> Button Control                
            <radiobutton groupname="ControlLoad" name="checkcontrol">CheckBox Control
            <radiobutton groupname="ControlLoad" name="textcontrol">TextBox Control
            <radiobutton groupname="ControlLoad" name="dropcontrol">Dropdown Control
            <Button Name="btncreate" Content="Create" Margin="10" Click="btncreate_Click"></Button>
        <stackpanel name="SP2" grid.column="1">

And second part is code behind code.

private void btncreate_Click(object sender, RoutedEventArgs e)
            if (btncontrol.IsChecked.Value)
                Button button = new Button();
                button.Content = "New Button";
                button.Margin = new Thickness(5);
            else if (checkcontrol.IsChecked.Value)
                CheckBox check = new CheckBox();
                check.Content = "New CheckBox";
                check.Margin = new Thickness(5);
            else if (textcontrol.IsChecked.Value)
                TextBox textbox = new TextBox();
                textbox.Text = "New TextBox";
                textbox.Margin = new Thickness(5);
            else if (dropcontrol.IsChecked.Value)
                ComboBox combo = new ComboBox();
                combo.Margin = new Thickness(5);

Link for MVVM Pattern is[^]

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100