2013-01-22 44 views
0

我遇到了WPF样式的问题。WPF样式仅适用于使用dataTrigger的根元素

在根用户控件我有这样定义的资源:

<UserControl.Resources> 
    <Style TargetType="{x:Type MyControl}"> 
     <Setter Property="MyControl.AAA" Value="Value1" /> 
    </Style> 
</UserControl.Resources> 

这一切正常,它会影响整个可视化树层次结构中的所有元素MyControl。

如果我试图更改使用DataTrigger设置器,像这样:

<UserControl.Resources> 
    <Style TargetType="{x:Type MyControl}"> 
     <Style.Triggers>     
      <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value1"> 
       <Setter Property="MyControl.AAA" Value="Value1" /> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Path=SelectedAAAValue}" Value="Value2"> 
       <Setter Property="MyControl.AAA" Value="Value2"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

样式仅应用于特定类型MyControl的根元素。

任何人都可以解释为什么会发生这种情况吗?我如何通过DataTriggers将样式应用于所有特定元素?

非常感谢您的帮助。 Ondra

回答

0

我不知道为什么发生这种情况,但也许你可以找到更多的信息here。这当然只有在你设置MyControl.AAA的属性是一个DependecyProperty的情况下。

图片下的下一段应该说明更多。

+0

嗨克里斯蒂安,非常感谢,你排到我正确的方向上,必须的DependencyProperty被定义为继承,这样AAAProperty = DependencyProperty.Register( “AAA”, typeof运算(MyControl), typeof运算(ProjectiveControl) , 新的FrameworkPropertyMetadata( some_default_value,FrameworkPropertyMetadataOptions.Inherits)); –

相关问题