目前,我有两个非常大的 DataTemplate 对象来在两个列表框中显示两组项目。 DataTemplate 在两个 ListBox 的 ItemContainerStyle 属性中设置的两个 Style 的 ContentTemplate 属性中引用。这些项目具有相同的类型,并且数据模板相同,但以下控件除外:
来自数据模板1
<TextBlock Style="{StaticResource TextStyle}" FontSize="20" Foreground="White"
HorizontalAlignment="Left" Panel.ZIndex="2" Text="{Binding RemainingTime.TotalHours,
Converter={StaticResource DoubleToIntegerConverter}, StringFormat={}{0:#00}}" />
来自数据模板2
<TextBlock Style="{StaticResource TextStyle}" FontSize="20" Foreground="White"
HorizontalAlignment="Left" Panel.ZIndex="2" Text="{Binding ElapsedTime.TotalHours,
Converter={StaticResource DoubleToIntegerConverter}, StringFormat={}{0:#00}}" />
是否有某种方法可以避免复制整个数据模板,但第二个模板中此 TextBlock 的文本绑定仍然存在这一差异?
不,没有继承权DataTemplate
。如果你考虑一下,你会如何覆盖 a 的一部分DataTemplate
?
解决方案:使用另一个Style
捕获两个模板之间的共同属性。您可以将其范围限制在同一范围内Resources
如果只在您需要的地方阻止它。这是一种更干净或更WPF 的做事方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)