wpf - feuert den Datentrigger, wenn sich die Eigenschaft unabhängig vom neuen Wert ändert

Ich versuche zum ausführen einer animation auf eine Zelle in einem datagrid, wenn der Wert des datagrid-Zelle ändert.

Datagrid selbst ist gebunden an eine ObservableCollection von plain old CLR objects. In diesem Fall können sagen, dass die Objekte "Person" Objekte mit Eigenschaften, die für 'Vorname', 'Nachname' und 'Alter'. Die "Person" Klasse die INotifyPropertyChanged-Schnittstelle implementiert, und jede Eigenschaft hat den entsprechenden Aufruf von onPropertyChanged im setter.

Dies ist alles in Ordnung. In der datagrid-definition habe ich meine DataTemplate für die Zeichnung jede Zelle und an einen datatrigger zu ... wie folgt:

<DataGridTemplateColumn Header="FirstName">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Border Name="templateBorder">
                <TextBlock Name="templateTextBlock" Text="{Binding Path=FirstName}" />
            </Border>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding Path=FirstName}" Value="Richard">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard>
                            <Storyboard AutoReverse="True">
                                <DoubleAnimation Storyboard.TargetName="templateTextBlock" Storyboard.TargetProperty="Opacity" To=".1" Duration="0:0:.5" />
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

Wenn ein Objekt in meiner ObservableCollection ist aktualisiert (ich änderte den Wert für FirstName) das datagrid aktualisiert in Ordnung. Gemäß dem obigen Beispiel, wenn ich änderte den Wert von FirstName, 'Richard', dann wird die animation ausgeführt wird, auch in Ordnung.

Mein problem ist, dass ich brauche, um mein animation unabhängig davon, was der neue Wert von Firstname. Ich habe durchforstet das web, aber einige weit nur scheinen, Beispiele zu finden und dem auslösen des trigger gegen einen bekannten Wert z.B. Feuer auslösen FirstName 'Richard', wie ich demonstriert habe, in meinem Beispiel.

Meine Frage ist, wie kann ich das Feuer der datatrigger, unabhängig von dem Wert der aktualisierten Eigenschaft? Also im Grunde, wie kann ich das Feuer der datatrigger, wenn die FirstName-Eigenschaft aktualisiert wird, für eine bestimmte Zeile im datagrid.

Vielen Dank.

InformationsquelleAutor der Frage Peanut | 2011-06-01

Schreibe einen Kommentar