更新 XML 项源后添加列表框项时,不会调用路由事件“已加载”
本文关键字:事件 路由 调用 加载 已加载 XML 添加 列表 更新 | 更新日期: 2023-09-27 17:49:33
我在WPF中有一个ListBox,它使用指向xml文件的XMLDataProvider绑定。
我在列表框项的项模板中设置了一个情节提要,如下所示:
<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)
元素将添加到列表中,但情节提要不会触发。如何确保以编程方式添加的项将"Loaded"事件调用到自身?
更新:样式应用于列表框而不是列表框项。改变解决了这个问题。
如注释中所述,Style
应用于将为每个新的ListBoxItem添加引发的ListBoxItem
。
ListBox
加载的事件仅在首次加载到 UI 上时引发,之后不会引发。因此,将样式从列表框移动到列表框项。