我在SL版本2.0中工作
我在组中有3个单选按钮,我想根据单选按钮的选择加载3个用户控件。如何才能做到这一点?我有什么选择?
我在考虑将用户控件添加到与单选按钮相同的xaml文件中,并使它们全部不可见。然后根据选择的单选按钮在后面的代码上显示它们。
这是唯一的解决方案还是有更有效的方法来实现这一目标?
提前致谢。
答案 0 :(得分:0)
根据这些控件的大小和复杂程度,您的解决方案可能是合理的。
还有其他方法,包括动态加载模块。这增加了显着的复杂性Prism是Silverlight中最重要的项目,可以在http://compositewpf.codeplex.com/找到。
关于棱镜的10件事要知道:http://www.sparklingclient.com/prism-silverlight/
关于棱镜介绍的播客:http://www.sparklingclient.com/prism-in-silverlight/
答案 1 :(得分:0)
一种简单的方法是使用TabControl
,将UserControls放在TabItems中并重新设置TabItem.Header样式以显示RadioButton。这将通过手动设置各处的可见性属性来处理显示和隐藏而不会破坏您的代码
答案 2 :(得分:0)
我能想到的一个简单方法是在占位符中加载控件(例如StackPanel),每当选择单选按钮时,清除StackPanel.Children并添加新的新实例用户控件。
答案 3 :(得分:0)
另一种选择是使用XamlReader.Load()动态加载控件的XAML - 您可以将结果对象强制转换为FrameworkElement并将其添加到控件树中。
XamlReader.Load详细信息:http://msdn.microsoft.com/en-us/library/cc190359%28VS.95%29.aspx