C#,WPF-对从列表框中删除的项目进行动画处理
将项目添加到我的列表框时获得了此XAML代码动画-效果非常好:C#,WPF-对从列表框中删除的项目进行动画处理,c#,wpf,visual-studio-2010,C#,Wpf,Visual Studio 2010,将项目添加到我的列表框时获得了此XAML代码动画-效果非常好: <Window.Resources> <Style TargetType="{x:Type ListBoxItem}"> <Style.Triggers> <EventTrigger RoutedEvent="Loaded"> <EventTrigger.Actions>
<Window.Resources>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<EventTrigger RoutedEvent="Loaded">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:2">
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</Style.Triggers>
</Style>
</Window.Resources>
在删除列表框中的项目时,我是否也可以这样做
我有一个:
ObservableCollection<string> _data = new ObservableCollection<string>();
observetecollection\u data=newobservetecollection();
其中存储的项目
编辑:问题似乎是,当我从ObservaleCollection中删除它时,首先删除该项,然后运行动画-但由于该项不再存在,所以不会显示任何内容?我说得对吗
致以最诚挚的问候请尝试编写另一个
EventTrigger
,将RoutedEvent
设置为FrameworkElement。已卸载的
和内部提供给您的情节提要
尝试过了。它将不起作用,因为该项在动画出现之前已被删除。假设我为我的ObservableCollection创建了一个属性bool为“gonnabedeletted”的类。然后我可以为我想要删除的项目将其设置为true,然后动画应该首先发生,然后删除。但是,当我将items属性gonnabedeletted更新为true时,如何“侦听”更改?那么触发器会发生吗?如果您使用的是MVVM,它很简单。创建一个属性并在setter中写入:NotifyPropertyChanged(“NameOfYourProperty”)
。如果您没有使用MVVM,让我们尝试在代码隐藏中实现INotifyPropertyChanged接口,并:公共事件PropertyChangedEventHandler PropertyChanged;
公共void HandlePropertyChanged(string prop){如果(PropertyChanged!=null)PropertyChanged(这是新的PropertyChangedEventArgs(prop));}您可以在setter中编写:HandlePropertyChanged(“NameOfYourProperty”)