没有应用数据模板

本文关键字:数据 应用 | 更新日期: 2023-09-27 18:14:45

我有一个窗口,我想在其中显示基于数据模板的动态内容。

XAML大致如下所示:

<Window x:Class="Report.ControlLibrary.ReportHost"
         xmlns:reports="clr-namespace:Report.ControlLibrary.Reports"
'>
<Window.Resources>
    <DataTemplate x:Key="ReportTemplate" DataType="{x:Type reports:ReportViewModel}">
        <!-- Markup for DataTemplate goes here -->         
    </DataTemplate>
</Window.Resources>   
<ContentControl Content="{Binding}">
</ContentControl>
</Window>

DataContext正在被设置:

var vm = new ReportViewModel();
var report = new ReportHost() { DataContext=vm };          
report.Show();

似乎窗口上的DataContext设置正确,但DataTemplate没有找到,因为窗口只是包含我的ViewModel的ToString表示。

没有应用数据模板

是否在数据模板中定义了x:Key ?如果是这样,将导致内容呈现者不使用数据模板。这是我最近遇到的一个问题

尝试使用ContentControl。设置要用于Content的DataTemplate。查看这里的解释