这仅在Android上发生,我有一个动画,将ViewCell中StackView的高度,边距,填充间距和ViewCell的高度设置为0。我什至添加了一个延迟以确保下部元素的位置没有改变。确实,已删除元素下面的元素没有更改,但它们全部闪烁了。当我将其移到列表末尾时,也会发生同样的情况。我不得不隐藏元素而不是删除它。如何克服?还是有一种方法可以创建实现Observable Collection的类,创建不触发Collection Changed事件的delete方法?谢谢
public class ExtendedObservableCollection<T> : ObservableCollection<T>
{
private bool _suppressNotification = false;
public bool AllowNotifications { get { return _suppressNotification; } }
protected override void OnCollectionChanged(NotifyCollectionChangedEventArgs e)
{
if (!_suppressNotification)
base.OnCollectionChanged(e);
}
protected override void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (!_suppressNotification)
base.OnPropertyChanged(e);
}
public void ActivateNotifications()
{
_suppressNotification = false;
}
public void DesactivateNotifications()
{
_suppressNotification = true;
}
public void AddRange(IEnumerable<T> list)
{
if (list == null)
throw new ArgumentNullException("list");
_suppressNotification = true;
foreach (T item in list)
{
Add(item);
}
_suppressNotification = false;
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add));
}
}
您得到解决方案了吗我正面临着同样的问题,但目前还无法解决如果找到解决方案,可以分享一下吗,请