龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

WPF编程系列之WPF实现已绑定集合项目的移除时动画过渡解决方案(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
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 类型在这个方法在编译时已经丢失,只能用反射调用了。

完整的例子下载。


精彩图集

赞助商链接