如何根据用户选择动态注入用户控件
|
我的窗口上有一个“ 0”控件,根据用户选择的选项,应显示一个用户控件(确定要显示的用户控件是否完整)。我在弄清楚如何实际显示用户控件时遇到问题。本质上,用户将从“ 0”中选择项目,并根据选择出现一个用户控件(在我假设的“ 2”控件中)。
当前,要打开新窗口,我有一个窗口适配器,可以在其中动态创建新窗口并设置父窗口。
如何在视图模型中完成此操作?
编辑
我相信这是Rachel在提到使用ѭ3代替时所谈论的内容。不用担心我的
DataTemplates
而不是DataType
属性。那只是我的项目的名字。
<Window.Resources>
<DataTemplate DataType=\"{x:Type DataTemplates:FooEditorViewModel}\">
<DataTemplates:FooControl></DataTemplates:FooControl>
</DataTemplate>
<DataTemplate DataType=\"{x:Type DataTemplates:BarEditorViewModel}\">
<DataTemplates:BarControl></DataTemplates:BarControl>
</DataTemplate>
</Window.Resources>
这是一个示例视图模型。
public class ViewModel
{
public IEditorViewModel Editor
{
get
{
return new BarEditorViewModel();
}
}
}
并将其与
<ContentControl Content=\"{Binding Editor}\" />
为了返回不同的用户控件编辑器,我必须创建一个名为IEditorViewModel
的空白接口。不知道是否有解决办法。
希望这对某人有帮助。
没有找到相关结果
已邀请:
1 个回复
缮记箔
更好的替代方法是将DataTemplates用于不同的Item。然后只需设置
,WPF就会解析要使用的正确DataTemplate。我刚刚展示了上面的示例,因为它可用于将Template设置为SelectedItem属性的基础