Анимировать WPF Datatemplate, когда элемент добавлен в список? - PullRequest
27 голосов
/ 12 марта 2009

В моем проекте у меня есть список WPF, связанный с ObservableCollection. Каждый раз, когда я добавляю новый элемент в коллекцию, тот же элемент автоматически добавляется в список. Для отображения элементов в списке я использую табличку с данными XAML.

То, что я хочу сделать, это анимировать элемент один раз, когда он добавляется в коллекцию / список. Можно ли это сделать? Как анимация в табличке данных может быть? Думаю, мне нужен какой-то триггер, чтобы запустить анимацию, но какой триггер срабатывает при добавлении нового элемента / таблицы данных?

1 Ответ

25 голосов
/ 12 марта 2009

Я думаю, что триггер события для перенаправленного события FrameworkElement.Loaded может работать. Например:

<DataTemplate DataType="{x:Type l:Foo}">
    <Button x:Name="Button" Content="{Binding Path=Bar}">
        <Button.Background>
            <SolidColorBrush x:Name="ButtonBrush" Color="Tan" />
        </Button.Background>
    </Button>
    <DataTemplate.Triggers>
        <EventTrigger RoutedEvent="FrameworkElement.Loaded" SourceName="Button">
            <BeginStoryboard>
                <Storyboard>
                    <ColorAnimation Storyboard.TargetName="ButtonBrush" Storyboard.TargetProperty="Color" To="Red" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </DataTemplate.Triggers>
</DataTemplate>
...