基于单选按钮选择动态添加用户控件 - WPF [英] Dynamically adding user controls based on radio button selection - WPF

查看:102
本文介绍了基于单选按钮选择动态添加用户控件 - WPF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我正在寻找一种基于单选按钮选择动态加载用户控件的解决方案。问题解释如下。

1.我有一个基本窗口xaml(MainWindow)。这有2个堆栈面板,SP1和SP2。

2.我创建了5个用户控件

Hi,
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无线电UC ==> 4个单选按钮。

2.2选项-1 UC

2.3选项-2 UC

2.4选项-3 UC

2.5选项 - 4 UC



3.无线电UC在设计时加载在MainWindow的SP1中。

4.根据单选按钮的选择,应该在SP2中动态加载4个选项UC中的一个



我是因为我不知道WPF那么无能为力。任何人都可以使用WPF MVVM模式帮助我。



提前谢谢。


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.

推荐答案

您好TechBang,请看这个例子(但这不是在MVVM模式中,对于MVVM模式,请遵循我最后给出的链接。



首先根据您的要求我创建一个设计页面。

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">
        
        <grid.columndefinitions>
            <columndefinition width="200" />
            <columndefinition width="400" />
        </grid.columndefinitions>
        
        
        <stackpanel name="SP1" grid.column="0">
            <radiobutton groupname="ControlLoad" name="btncontrol"> Button Control                
            </radiobutton>
            <radiobutton groupname="ControlLoad" name="checkcontrol">CheckBox Control
            </radiobutton>
            <radiobutton groupname="ControlLoad" name="textcontrol">TextBox Control
            </radiobutton>
            <radiobutton groupname="ControlLoad" name="dropcontrol">Dropdown Control
            </radiobutton>
            
            <Button Name="btncreate" Content="Create" Margin="10" Click="btncreate_Click"></Button>
        </stackpanel>
        
        <stackpanel name="SP2" grid.column="1">
            
        </stackpanel>
    </grid>





第二部分是代码背后的代码。





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);
                SP2.Children.Add(button);
            }
            else if (checkcontrol.IsChecked.Value)
            {
                CheckBox check = new CheckBox();
                check.Content = "New CheckBox";
                check.Margin = new Thickness(5);
                SP2.Children.Add(check);
            }
            else if (textcontrol.IsChecked.Value)
            {
                TextBox textbox = new TextBox();
                textbox.Text = "New TextBox";
                textbox.Margin = new Thickness(5);
                SP2.Children.Add(textbox);
            }
            else if (dropcontrol.IsChecked.Value)
            {
                ComboBox combo = new ComboBox();
                combo.Items.Add("Item1");
                combo.Items.Add("Item2");
                combo.Margin = new Thickness(5);
                SP2.Children.Add(combo);
            }
        }





MVVM模式的链接是

http://stackoverflow.com/questions/4420911/get-selected-radio-button-in-a-group-wpf [ ^ ]


这篇关于基于单选按钮选择动态添加用户控件 - WPF的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆