Silverlight 动态子用户控件MVVM

Silverlight 动态子用户控件MVVM,silverlight,mvvm,Silverlight,Mvvm,我在页面上有一个用户控件,我想在它的网格中加载另一个自定义用户控件。但是,我希望用户控件类型是动态的-例如,从下拉列表中选择“Calculator”将显示我的自定义计算器控件,选择“Currency Converter”将加载我的Currency Converter。有人能帮忙吗 顺便说一句,我正在努力坚持MVVM 提前感谢。一种方法是为每个孩子定义多个数据模板。当用户选择该选项时,将相应的ViewModel设置为父视图中存在的ContentControl的DataContext,框架将为您选择

我在页面上有一个用户控件,我想在它的网格中加载另一个自定义用户控件。但是,我希望用户控件类型是动态的-例如,从下拉列表中选择“Calculator”将显示我的自定义计算器控件,选择“Currency Converter”将加载我的Currency Converter。有人能帮忙吗

顺便说一句,我正在努力坚持MVVM


提前感谢。

一种方法是为每个孩子定义多个
数据模板。当用户选择该选项时,将相应的
ViewModel
设置为父视图中存在的
ContentControl的DataContext
,框架将为您选择相应的视图。

John Papa写了一篇关于如何实现这一点的博文

基本策略是实例化从下拉列表中选择的UserControl派生的类的新实例

换句话说,可以处理下拉列表的SelectionChanged事件,并基于所选项目创建新的UserControl对象