Справочная информация:
У меня есть WPC UserControl (MainControl - не показан в коде ниже), который содержит еще один (называемый MyControl в коде ниже).
MainControl имеет свой DataContext, установленный для объекта, который имеет свойство Project.
Когда загружается MainControl, свойство Project всегда имеет значение null.
Проблема:
Когда загружается MainControl, я хочу добавить в MyControl специальную раскадровку (используется только один раз (эта «specialFadeInStoryboard» изменяет свойство непрозрачности MyControl с 0 на 1).
Когда для свойства Project установлено значение, отличное от нуля, я хочу, чтобы MyControl исчезал с помощью "fadeOutStoryboard" (изменяет свойство Opacity объекта MyControl на 0), и если впоследствии оно устанавливается равным нулю, я хочу исчезнуть снова в этот раз, используя "fadeInStoryboard" (изменяет свойство непрозрачности MyControl на 1).
Однако после добавления кода для «specialFadeInStoryboard» MyControl никогда не исчезает ...
Что я делаю не так?
<local:MyControl Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Opacity, Converter={StaticResource opacityToVisibilityConverter}, Mode=OneWay}">
<local:MyControl.Style>
<Style>
<Style.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource specialFadeInStoryboard}"/>
</EventTrigger>
<DataTrigger Binding="{Binding Project, Converter={StaticResource nullToBooleanConverter}, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource fadeInStoryboard}"/>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</local:MyControl.Style>
</local:MyControl>