У меня есть набор триггеров в форме 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, о котором я не знаю?
Итак, удалите первое значение в теге XAML. Это сработало и для меня. Я подумал, что было бы неплохо включить туда «увидеть триггер». –