2013-06-27 76 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">