2013-06-27 39 views
1

我有一个样式的自定义控件。该控件绑定到一个属性在我的视图模型WPF绑定到数据触发器中的父级内容

<controls:PromoAlarmBox Content="{Binding Controller.IOGRP1W.Value}"/> 

我想创建一个datatrigger这改变取决于限值控制的颜色和这个作品

<Style TargetType="{x:Type local:PromoAlarmBox}">   
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ContentControl"> 
        <Rectangle x:Name="PART_rectangle" VerticalAlignment="Stretch" Fill="Yellow" Stroke="Black" Height="20" Width="20"/> 

        <ControlTemplate.Triggers> 
          <DataTrigger Binding="{Binding Controller.IOGRP1W.Value, UpdateSourceTrigger=PropertyChanged}" Value="1"> 

          <Setter Property="Fill" TargetName="PART_rectangle" Value="Red" /> 

         </DataTrigger> 
        </ControlTemplate.Triggers>  
       </ControlTemplate> 
      </Setter.Value> 
     </Setter>   
    </Style> 

到目前为止好。如果我在数据触发器中引用与控件绑定的属性相同的属性,我可以使其工作。我的问题是,我有相同的控件绑定到不同的值的多个实例,我不想为它们中的每一个创建一个新的样式,所以我的问题是如何绑定到数据触发器中控件的绑定值。

回答

-1

您应该使用PriorityBinding达到目标的行为

0

也许你可以试试这个:

<ControlTemplate.Triggers> 
    <Trigger Property="Content" Value="1"> 
     <Setter Property="Fill" TargetName="PART_rectangle" Value="Red" /> 
    </Trigger> 
</ControlTemplate.Triggers> 

这样,Trigger应结合PromoAlarmBoxContent财产。

+0

对不起,我同时回答了我自己的问题。你的工作似乎也工作,所以我会检查它作为答案。谢谢 – klashagelqvist

+0

对不起,我很快,上面的答案不适合我,似乎它需要成为一个数据触发器 – klashagelqvist

0

找到它。爱WPF,但似乎你可以花上几个星期,只是研究不同的绑定表达式

<DataTrigger Binding="{Binding Path=Content, RelativeSource={RelativeSource Mode=Self}}" Value="1">