基于单选按钮选择动态添加用户控件 - WPF [英] Dynamically adding user controls based on radio button selection - 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屋!