【发布时间】:2012-09-11 12:45:21
【问题描述】:
我的要求是在具有以下情况的文本框上应用多种样式:
- 我在另一个文件中有一种样式(例如 MyTextStyle),例如“Generic.xaml”
- 我的文本框在 ABC.xaml
- 我想对这个文本框应用一些触发器,所以我必须使用 Textbox.Style
- 我也想申请“MyTextStyle”
当我执行以下操作时,我无法将 DynamicResource 应用于 BasedOn:
<TextBox.Style>
<Style BasedOn="{DynamicResource MyTextStyle}" TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding SelectedCall.Name}" />
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedCall.Name}" Value="N/A">
<Setter Property="Text" Value="" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
请建议我一些解决方案,以便我可以应用此动态资源以及我的数据触发器样式
【问题讨论】:
-
为什么要在 BasedOn 中使用 DynamicResource 而不是 StaticResource?
-
因为样式“MyTextStyle”用于我的解决方案中的几乎所有文本框。因此,如果我为此文本框目的专门(并且在本地)定义它,那将是多余的。