WPF对话框的动态视图 - 无法呈现contentpresenter

时间:2016-04-19 14:15:53

标签: c# wpf mvvm contentpresenter

基于this机制,我创建了一个对话窗口,我可以通过<ContentPresenter Content="{Binding .}">动态分配内容 我想要分配的内容是具有相应ViewModel的用户控件。这可以工作,因为我可以在其他用户控件中呈现DialogView

<DataTemplate DataType="{x:Type ViewModels:DialogViewModel}"> <Views:DialogView/> </DataTemplate>

但是,在DialogWindow中,无法呈现DialogView,而只能看到DialogViewModel的字符串表示形式。可能是什么原因导致我无法呈现contentpresenter的内容?

非常感谢任何帮助!

提前致谢

1 个答案:

答案 0 :(得分:0)

您在哪里定义数据模板?听起来您正在将它们创建为Window资源,并且未将它包含在DialogWindow中。如果您将它们定义为Window资源,则需要在每个要以此方式呈现的Window上包含数据模板定义。如果ViewModel / View对是应用程序的全局对象,则可以更容易地在App.xaml中定义它,整个应用程序中的任何Window或UserControl将对其进行拾取。