我在页面上有一个用户控件,我想在它的网格中加载另一个自定义用户控件。然而,我希望用户控件类型是动态的-例如,从下拉列表中选择" calculator“将显示我的自定义计算器控件,而选择"Currency Converter”将加载我的货币转换器。有人能帮上忙吗?
顺便说一句,我正试图坚持使用MVVM。
提前谢谢。
发布于 2011-07-10 00:46:09
一种方法是为每个子级定义多个DataTemplates。当用户选择选项集时,父视图中出现的ContentControl's DataContext的相应ViewModel和框架将为您选择相应的视图。
发布于 2011-11-29 07:40:06
John Papa写了一篇很棒的博客文章,详细介绍了如何做这个here。
基本策略是实例化一个类的新实例,该实例是从下拉列表中选择的UserControl派生的。
换句话说,可以处理下拉列表的SelectionChanged事件,并基于所选项目创建一个新的UserControl对象。
https://stackoverflow.com/questions/6636004
复制相似问题