/ / Wyzwalanie animacji za pomocą DataTrigger i wiązania - .net, wpf, xaml, mvvm

Wyzwalanie animacji za pomocą narzędzia DataTrigger i powiązanie - .net, wpf, xaml, mvvm

Próbuję zrobić siatkę „zanikającą” lub „zanikającą”w zależności od wartości nieruchomości. Właściwość jest wywoływana, ale animacja nie wpływa na siatkę. Moja siatka i wyzwalacze wyglądają tak:

<Grid Background="White"
Opacity="0">
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding IsWaiting}"
Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickIn">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickIn" />
</DataTrigger.ExitActions>
</DataTrigger>
<DataTrigger Binding="{Binding IsWaiting}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Name="pickOut">
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="1"
To="0"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="pickOut" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.8" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
<!-- etc -->
</Grid>

Mój IsWaiting właściwość wygląda jak:

public bool IsWaiting{
get { return _isWaiting; }
set {
_isWaiting = value;
OnPropertyChanged("IsWaiting");
}
}

W dzienniku wyjściowym nie ma błędów wiązania, gdy zmienia się właściwość. Co ja robię źle?

Odpowiedzi:

2 dla odpowiedzi № 1

The <Grid.Triggers> unieważniają twoje <Style.Triggers> możesz zastąpić <Grid.Triggers> animacja po prostu ustawiając IsWaiting na true, gdy siatka ładuje się lub ustawia na wartość domyślną true bu.