如何从代码动态提供数据模板?
我有绑定到 MainWindow 的视图模型 MainWindowViewModel。它看起来像这样:
public class MainWindowViewModel : ViewModelBase
{
public int Progress
{
get => _progress;
set => RaiseAndSetIfChanged(ref _progress, value);
}
public ViewModelBase? Content
{
get => _content;
set => RaiseAndSetIfChanged(ref _content, value);
}
}
然后在 MainWindow 中,我根据与 MainWindowViewModel 相关的类型选择了 DataTemplate
<ContentControl Name="Header" Content="{Binding Content}">
<ContentControl.ContentTemplate>
<DataTemplate DataType="{x:Type viewModels:DefaultViewModel}">
<local:DefaultView></local:DefaultView>
</DataTemplate>
</ContentControl.ContentTemplate>
它目前只有一个 DataTemplate,但我想从不同的地方加载它,所以我试图用动态生成的 DataTemplates 列表替换它,因为将来我需要从用户提供的外部文件加载一些控件。
如何做到这一点?