我在WPF中有一个ListBox,它使用指向xml文件的XMLDataProvider绑定。
我在ListBoxItem的itemtemplate中设置了一个故事板:
<Setter Property="LayoutTransform">
<Setter.Value>
<ScaleTransform x:Name="transform" />
</Setter.Value>
</Setter>
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:.2" />
<DoubleAnimation Storyboard.TargetProperty="LayoutTransform.ScaleY" From="0" Duration="0:0:.2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
在启动应用程序时首次加载文件时,这非常有用。但是当我向列表中添加一个新的XMl元素时:
MainNode.AppendChild(NewElement)
该元素已添加到列表中,但故事板不会触发。如何确保以编程方式添加的项目调用&#34; Loaded&#34;事件本身?
更新:样式应用于ListBox而不是ListBoxItem。改变解决了这个问题。
答案 0 :(得分:0)
正如评论中所提到的Style
应该应用于ListBoxItem
,这将为每个新的ListBoxItem添加提出。
ListBox
加载的事件只有在第一次加载UI而不是之后加载时才会被引发。因此,将样式从ListBox移动到ListBoxItem。