RoutedEvent"已加载"更新XML Itemssource后添加Listboxitem时不调用

时间:2014-03-11 11:02:18

标签: c# wpf listbox

我在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。改变解决了这个问题。

1 个答案:

答案 0 :(得分:0)

正如评论中所提到的Style应该应用于ListBoxItem,这将为每个新的ListBoxItem添加提出。

ListBox加载的事件只有在第一次加载UI而不是之后加载时才会被引发。因此,将样式从ListBox移动到ListBoxItem。