2009-03-12 20 views
27

W moim projekcie mam Listbox WPF związany z ObservableCollection. Za każdym razem, gdy dodaję nowy element do kolekcji, ten sam przedmiot zostanie automatycznie dodany do Listbox. Aby wyświetlić elementy w polu listy, korzystam z XAML Datatemplate.Animate WPF Datatemplate, gdy element został dodany do Listbox?

Co chcę zrobić, to ożywiać element raz, gdy zostanie dodany do kolekcji/pola listy. Czy to można zrobić? Może animacja w datatemplate? Chyba potrzebuję jakiegoś spustu, aby uruchomić ten animację, ale jaki wyzwalacz jest uruchamiany, gdy dodawany jest nowy element/datatemplate?

Odpowiedz

25

Myślę, że wyzwalacz zdarzeń dla zdarzenia routowanego FrameworkElement.Loaded może działać. Na przykład:

<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> 
+0

Działa jak marzenie! Dzięki – TalkingCode

+0

Dobra sztuczka, tnx! =) –