强制重新加载列表框可见性更改的列表框项目(用户控件)
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。现在,当可见性变为可见时,我重新加载副本。谢谢
我有一个绑定到用户控件列表的列表框。
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。现在,当可见性变为可见时,我重新加载副本。谢谢