强制重新加载列表框可见性更改的列表框项目(用户控件)

Force a reload of Listbox items(usercontrols) on ListBox Visibility Changed

我有一个绑定到用户控件列表的列表框。

uc 有一个 TextBlock,它有一个触发 OnLoad 的动画。

 <TextBlock.Style>
            <Style TargetType="TextBlock">
                <Style.Triggers>
                    <EventTrigger RoutedEvent="Loaded">
                        <EventTrigger.Actions>
                            <BeginStoryboard>
                                <Storyboard>
                                    <DoubleAnimation Duration="0:0:0.8"      Storyboard.TargetProperty="FontSize" To="16" />
                                </Storyboard>
                            </BeginStoryboard>
                        </EventTrigger.Actions>
                    </EventTrigger>
                 </Style.Triggers>
            </Style>
        </TextBlock.Style

工作正常。我的问题是列表可以被用户折叠。当用户取消折叠列表时,我需要再次触发动画(当然不会 - 因为它们已经加载)。似乎没有任何其他活动可以奏效。 Soo..我正在尝试转储 ItemSource 并重新加载它们。它不会造成伤害,因为最多只有 10 或 12 件物品。我在 ViewModel 中有一个 ICommand 可以捕获可见性崩溃......但我被困在那里。谢谢

我最后做的是复制 Collection 上的 Collapse...然后 Clearing。现在,当可见性变为可见时,我重新加载副本。谢谢