嵌套dataTemplate中如何使用style?

dummysj 2011-12-27 09:00:56

<DataTemplate x:Key="commonTemplate">
<StackPanel Orientation="Horizontal">
<CheckBox></CheckBox>
<TextBlock Text="value:"></TextBlock>
<TextBlock Text="{Binding Name}"></TextBlock>
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="redTemplate">
<DataTemplate.Resources>
<Style TargetType="TextBlock">
<Setter Property="Background" Value="Red"></Setter>
</Style>
</DataTemplate.Resources>
<ContentPresenter ContentTemplate="{StaticResource commonTemplate}"></ContentPresenter>
</DataTemplate>
<DataTemplate x:Key="limeTemplate">
<DataTemplate.Resources>
<Style TargetType="TextBlock">
<Setter Property="Background" Value="Lime"></Setter>
</Style>
</DataTemplate.Resources>
<ContentPresenter ContentTemplate="{StaticResource commonTemplate}"></ContentPresenter>
</DataTemplate>


如何让redTemplate和limeTemplate中的Style起作用?
...全文
200 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjkof 2011-12-28
  • 打赏
  • 举报
回复
在DataTemplate中的使用隐式style要注意,如果该隐式style不在当前DataTemplate中(在祖先元素中),非control的子类不会不断往上寻找,仅在当前DataTemplate中找。

你可以尝试换成button之后就能看到效果了
dummysj 2011-12-28
  • 打赏
  • 举报
回复
有谁知道怎么做么?分开写能避免这个问题,但公共的部分就不能重用了
sjkof 2011-12-28
  • 打赏
  • 举报
回复
非control的子类只寻找当前template中的隐式style,
可以试一下button,是有效果的
sjkof 2011-12-28
  • 打赏
  • 举报
回复
非control的子类只寻找当前template中的隐式style,
可以试一下button,是有效果的

8,756

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧