2009-10-28 16 views
6

Mam następujące XAML:DataTrigger nie wypalanie

<DockPanel> 
    <DockPanel> 
     <CheckBox IsChecked="{Binding Path=Test}" /> 
     <CheckBox IsChecked="{Binding Path=Test}" /> 
    </DockPanel> 
    <DockPanel DockPanel.Dock="Left" Width="10" Background="Blue"> 
     <DockPanel.Style> 
      <Style> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Path=Test}" Value="True"> 
         <Setter Property="DockPanel.Background" Value="Yellow" /> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </DockPanel.Style> 
    </DockPanel> 
</DockPanel> 

obecnej - 2 checkboxes połączyć prawidłowo - sprawdzenie pewnego sprawdzić inne - ale DataTrigger nie jest wypalania w ogóle.

Co robię źle?

Odpowiedz

18

Problem dotyczy tutaj: Property Value Precedence.

Aktualnie ustawiasz Tło na niebieski bezpośrednio na DockPanel. Ta jawna właściwość zastąpi dowolną wartość ustawioną przez wyzwalacz.

Zamiast tego należy ustawić oryginalny styl "Tło" jako styl w stylu.

<DockPanel DockPanel.Dock="Left" Width="10"> 
     <DockPanel.Style> 
      <Style> 
       <Setter 
         Property="DockPanel.Background" 
          Value="Blue" /> 
       <Style.Triggers>      
        <DataTrigger 
          Binding="{Binding Path=Test}" 
          Value="True">       
        <Setter 
         Property="DockPanel.Background" 
          Value="Yellow" />      
        </DataTrigger>    </Style.Triggers>   </Style>  </DockPanel.Style> </DockPanel></DockPanel> 
+0

Dzięki! - To zawsze zabawne, że jeden mały nadzór sprawia, że ​​wszystko nie działa. – John

+0

Dzięki, przeszedłem 10 wątków i otrzymałeś odpowiedź, której potrzebowałem :). –

+0

@Andrew Shepherd Ty, sir, jesteś legendą! – TuanDT

Powiązane problemy