app.xaml 中的数据模板在没有任何样式的情况下不会被拾取?
我在 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>
数据模板被拾取并产生所需的结果...我不确定那里发生了什么...任何人都可以澄清这一点吗?
谢谢。
I have a DataTemplate in app.xaml that binds a view to a viewmodel.
<Application.Resources>
<DataTemplate DataType="{x:Type vm:someviewmodeltype}">
<vw:somevwcontrol />
</DataTemplate>
</Application.Resources>
the above template doesn't get applied if there are no styles. The moment I put a style, something like ...
<Application.Resources>
<DataTemplate DataType="{x:Type vm:someviewmodeltype}">
<vw:somevwcontrol />
</DataTemplate>
<Style TargetType="TextBlock">
<Setter Property="FontSize" Value="20"></Setter>
</Style>
</Application.Resources>
datatemplate gets picked up and produces the desired results ... I am not sure whats happening there ... could anybody clarify this ?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此处回答了类似的问题。问题并不完全相同,其中包含被跳过的合并字典,但很可能是相同的错误。
这是一个优化错误,请参阅 这个链接。
我发现您也已经找到了解决方法,只需在 App.xaml 中添加默认的虚拟样式即可。它不必有任何设置器等,类似这样的东西也可以
Answered a similar question here. The question is not exactly the same, that one contained merged dictionaries being skipped but it's most likely the same bug.
This is an optimization bug, see this link.
I see you've already found the workaround as well, just add a default dummy style in App.xaml. It doesn't have to have any setters etc, something like this will do as well
另一个陷阱是从
DataType
属性中遗漏了{x:Type}
。错误
:构建、运行并默默失败:
正确
Another pitfall is leaving out the
{x:Type}
from theDataType
attribute.WRONG
This builds, runs and fails silently:
RIGHT