有没有办法在xaml中将顶级窗口声明为内容模板,并在加载时重新创建它?基本上我正在尝试做一些与数据模板相同的事情:
<DataTemplate DataType="{x:Type my:MyType}" >
<Window>
...etc...
</Window>
</DataTemplate>
这在运行时工作正常,但是由于您不应该使用顶级窗口来处理数据模板或样式等,因此在编译时会产生错误,所以基本上我需要替换DataTemplate用自定义类来解决这个问题。我实际上并不需要支持DataType ...数据模板将资源键隐式设置为DataType,但WPF中的错误意味着您无法在自己的类型上使用相关属性。我可以通过反向操作来轻松解决这个问题,即将类型指定为键:
<MyClass x:Key="{x:Type my:MyType}" >
<Window>
...etc...
</Window>
</MyClass>
我需要知道的是如何声明MyClass,以便XAML内容生成一个模板,我可以创建实例而不是Window本身的实际实例。