2010-01-19 4 views
3

XAML 형식의 트리거 집합이 있고 나에게 왜 하나의 집합이 작동하는지 파악할 수없고 다른 집합은 작동하지 않습니다. 똑같은 변수에 묶여 있음에도 불구하고Label 및 GroupBox 트리거가 작동하지 않고 StackPanel에서 동일한 트리거가 작동합니다.

첫째, 일을 트리거 :

<StackPanel Orientation="Vertical" Margin="25,0,0,0"> 
    <StackPanel.Style> 
     <Style TargetType="{x:Type StackPanel}"> 
      <Setter Property="IsEnabled" Value="False" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="Separator"> 
        <Setter Property="IsEnabled" Value="True" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Style> 
</StackPanel> 

<StackPanel Orientation="Vertical" Margin="25,0,0,0"> 
    <StackPanel.Style> 
     <Style TargetType="{x:Type StackPanel}"> 
      <Setter Property="IsEnabled" Value="False" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="BubblePoint"> 
        <Setter Property="IsEnabled" Value="True" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </StackPanel.Style> 
</StackPanel> 

이 트리거 아름답게 작동합니다. 자, GroupBox와 매우 유사한 트리거를 가진 Label이 있습니다. 작동하지 않는

<GroupBox Header="Recombined Gas" Grid.Row="1" Grid.ColumnSpan="2"> 
    <GroupBox.Style>     
     <Style TargetType="{x:Type GroupBox}"> 
      <Setter Property="Header" Value="Recombined Gas" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="Separator"> 
        <Setter Property="Header" Value="Separator Gas" /> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="BubblePoint"> 
        <Setter Property="Header" Value="Dissolved Gas" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </GroupBox.Style> 
</GroupBox> 

을 그리고 라벨 트리거 : 작동하지 않는 트리거 내가 여기에 근본적인 뭔가를 놓친 거지 같은

<Label Content="Reombined GOR" Width="90"> 
    <Label.Style> 
     <Style TargetType="{x:Type Label}"> 
      <Setter Property="Content" Value="Recombined GOR" /> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="Separator"> 
        <Setter Property="Content" Value="Separator GOR" /> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding GorOption.InternalName}" Value="BubblePoint"> 
        <Setter Property="Content" Value="Dissolved GOR" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Label.Style> 
</Label> 

는 느낌,하지만 지금은 저를 이스케이프합니다. 보시다시피 모든 트리거는 동일한 값으로 바인딩되고 동일한 옵션에서 트리거됩니다. 단일 트리거 블록에서 동일한 변수에 바인딩하려고하는 두 개의 DataTrigger 블록이 있기 때문입니까? 저는 이것이 이것이 문제라고 상상할 수 없습니다. 사실 저는 다른 곳에서도 이것을 할 것이라고 확신합니다. 내가 인식하지 못하는 Label 및 GroupBox에 특정한 것이 있습니까?

답변

4

Nevermind는 게시 후 2 분이 지났습니다. 나는 그것이 "다른 상황에서 그것을 볼 필요가있는"문제 중 하나라고 생각한다. 나는 내 자신에게 말하고있는 것처럼 느껴진다 ...

어쨌든, 문제는 원래 XAML 태그에서 Content 또는 Header와 같은 속성을 설정하고 트리거를 사용하여 해당 속성을 변경하려고 할 때 트리거가 어떤 이유로 무시되었습니다. 나는 이것이 아직 보지 못했던 몇몇 구식 WPF 문서에 설명되어 있다고 가정하고 있지만, 당신이 알아낼 때까지는 매우 혼란 스럽다.

+0

따라서 XAML 태그의 첫 번째 값을 제거하십시오. 그것은 나를 위해 일했습니다. 나는 거기에 "방아쇠를 당"하는 것이 좋을 것이라고 생각했다. –