WPF编程系列之WPF实现已绑定集合项目的移除时动画过渡解决方案(2)
6、清理 现在我们实现 OnRemovalAnimationComplete 方法,注意上面 XAML 设置的 Attach Property 目标是装数据的容器(如 ListBoxItem)。 static void OnRemovalAnimationComplete
6、清理
现在我们实现 OnRemovalAnimationComplete 方法,注意上面 XAML 设置的 Attach Property 目标是装数据的容器(如 ListBoxItem)。
static void OnRemovalAnimationComplete( DependencyObject container, DependencyPropertyChangedEventArgs e ) { if ( !(container is ContentControl) ) { return; } var data = ((ContentControl)container).Content; if ( !itemsToRemove.Contains(data) || (bool)e.NewValue == false ) { return; } var dataSource = itemsToRemove[data]; dataSource.GetType().GetMethod("Remove").Invoke(dataSource, new object[] { data }); itemsToRemove.Remove(data); }
TData 类型在这个方法在编译时已经丢失,只能用反射调用了。
完整的例子下载。
精彩图集
精彩文章