我在app.xaml中有一个DataTemplate,它将视图绑定到一个视图模型。
<Application.Resources>
<DataTemplate DataType="{x:Type vm:someviewmodeltype}">
<vw:somevwcontrol />
</DataTemplate>
</Application.Resources>
如果没有样式,则不会应用上述模板。我放风格的那一刻,就像......
<Application.Resources>
<DataTemplate DataType="{x:Type vm:someviewmodeltype}">
<vw:somevwcontrol />
</DataTemplate>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="20"></Setter>
</Style>
</Application.Resources>
datatemplate被拿起并产生预期的结果......我不确定那里发生了什么......有人可以澄清一下吗?
感谢。
答案 0 :(得分:20)
回答了类似的问题here。问题不完全相同,一个包含合并的词典被跳过但很可能是同一个bug。
这是一个优化错误,请参阅this link。
关于创建每个对象 XAML,如果存在默认样式 (即具有类型的键的样式) 风格应该适用。尽你所能 想象有几个表现 优化(隐含) 查找尽可能轻的重量。一 他们是我们不看里面 资源字典除非它们是 标记为“包含默认值 样式”。有一个错误:如果你所有的 默认样式嵌套在合并中 字典深入三层(或 更深层次的顶级词典没有 得到标记,以便搜索跳过它。 解决方法是设置默认值 风格的东西,任何东西,在 根词典。
我看到你已经找到了解决方法,只需在App.xaml中添加一个默认的虚拟样式。它不必有任何setter等,像这样的东西也可以这样做
<Application.Resources>
<DataTemplate DataType="{x:Type vm:someviewmodeltype}">
<vw:somevwcontrol />
</DataTemplate>
<Style TargetType="{x:Type Rectangle}" />
</Application.Resources>
答案 1 :(得分:0)
另一个陷阱是从 launch_template {
id = aws_launch_template.cluster.id
version = $Latest
}
属性中剔除{x:Type}
。
这会静默生成,运行并失败:
DataType
<DataTemplate DataType="local:MyType">