尝试在WPF中实现VirtualizingPanel时未调用OnItemChanged

时间:2009-01-09 13:47:39

标签: wpf wpf-controls

我正在尝试在WPF中实现我自己的VirtualWrapPanel。

我这样实现:

public class VirtualWrapPanel : VirtualizingPanel, IScrollInfo
    {

         ....

    protected override void OnItemsChanged(object sender, ItemsChangedEventArgs args)
        {
            switch (args.Action)
            {
                case NotifyCollectionChangedAction.Remove:
                case NotifyCollectionChangedAction.Replace:
                case NotifyCollectionChangedAction.Move:
                    base.RemoveInternalChildRange(args.Position.Index, args.ItemUICount);
                    return;
            }
        }

}

但是从不调用OnItemsChanged方法,导致控件不释放对象...... 任何的想法 ? 谢谢 乔纳森

1 个答案:

答案 0 :(得分:0)

您的ItemsSource是否实现了INotifyCollectionChanged?最简单的方法是使它成为ObservableCollection